legend2---17、legend2里面怎么面向对象

一、总结

一句话总结:

mvc本身挺优:本身mvc的开发模式,就算是面向过程下也还行,如果面向对象那就更加棒了
实体类无需属性:由于php的生命周期,建议面向对象的话,控制器中实体类里面无需属性,直接在Model里面操作数据库即可
看别人项目里面的面向对象:其它的等你 看了别人项目的 php 源码你就知道怎么做了

二、内容在总结中

mvc本身挺优:本身mvc的开发模式,就算是面向过程下也还行,如果面向对象那就更加棒了
实体类无需属性:由于php的生命周期,建议面向对象的话,控制器中实体类里面无需属性,直接在Model里面操作数据库即可
看别人项目里面的面向对象:其它的等你 看了别人项目的 php 源码你就知道怎么做了

完整分析legend2有哪些功能,该如何实现

有宗门
宗门有属性
有英雄
英雄有属性,英雄有技能

升级

有各种测试

有录入博客

获得物品
获得各种各样的物品

英雄升级
英雄领悟技能

英雄融合

装备啊,丹药,

分方面来说:

大的方面:
1、游戏方面
2、学习方面

-----------------学习方面说起:------------------
1、录入博客,做题目

博客 接口

博客园博客
csdn博客
新浪博客

interface blog{
    function loadBlog();
}
class cnblog implements blog{
    function loadBlog(){
        getBlog(){调用cnblog的那个Model};
        saveBlog(){};
    }
}
不同的getBlog调用的Model是不一样的
获取到数据,整理成一样的格式之后,也是一样的
saveBlog是一样的

2、做题方面
每次做题都是测试,分为很多种不同的测试
日常修炼
灵力测试
近期测试
分类测试

interface exam{
    function do();
}
interface Daily implements exam(){
    private questionNum;
    function do(){
        调用daily的model里面的getQuestionList获取题目

}
}

--------------------游戏方面-----------------------

主要是我的php的对象并不是常驻内存,页面请求返回给用户的时候变量对象这些其实已经被释放了,
我把数据库的数据数组转化成对象要花精力,我把对象装换成数组传到页面同样也花精力,而且这样耗费精力的转换用一次就没了
重新打开页面还要重新转换
对象存到session里面好像不太方便

解决方法:
就是这些对象可以有,但是他们不必带属性,直接带方法就可以了,数据库的数据作为参数传进去就好了

优化:

因为对象的属性都是直接从数据库中取,然后以数组作为参数传递给了对象的方法

面向对象之后,我如何确定你这个对象就是你这个对象呢
面向对象之后,我要修改数据库怎么办呢
{
类里面不需要属性,让他们在Model里面操作数据库就好了,控制器里面可以传id这些参数
}

1、宗门

interface school{
    function upgrade();//升级
    function gainMoney();//收钱:得到物品里面的特例
    funciton spendMoney();//花钱:使用物品里面的特例
    function gainItem();//得到物品
    function useItem();//使用物品

function recruitHero();//招募英雄
    function refreshHero();//刷新英雄

function xunbao();//寻宝
    function buy();//购买物品

熔炼英雄
}
class mySchool{
    有一个属性,这个数据就是从数据库中取出来的那个数组
    其它方法都是依赖于这个属性的
    类里面不需要属性,让他们在Model里面操作数据库就好了,控制器里面可以传id这些参数

}

2、英雄
class hero{
    升级
    穿戴装备

}

那些装备要不要做类呢?
没必要做类,因为英雄和宗门对象不适合有属性

3、奖励
灵力测试奖励
日常修炼奖励
等级奖励
分类测试奖励
近期测试奖励

其它的等你 看了别人项目的 php 源码你就知道怎么做了

 

legend2---17、legend2里面怎么面向对象的更多相关文章

  1. 【17】有关python面向对象编程的提高【多继承、多态、类属性、动态添加与限制添加属性与方法、@property】

    一.多继承 案例1:小孩继承自爸爸,妈妈.在程序入口模块再创建实例调用执行 #father模块 class Father(object): def __init__(self,money): self ...

  2. Java-Java面向对象程序设计

    2017-10-09 17:23:52 在面向对象技术中,将客观世界中的一个事物作为一个对象来考虑,比如有个张先生,他就是一个对象.每个对象都有自己的属性和行为.张先生的属性根据需要有姓名.性别.身高 ...

  3. python day10: 反射补充,面向对象

    目录 pythdon day 10 1. 反射补充 16. 面向对象 16.1 面向对象初步介绍 16.2 面向对象和面向过程区别 16.3 对象的进化 17. 类class 17.1 类的定义 17 ...

  4. 5. web前端开发分享-css,js深化篇

    一. css练习网易专题: 1. http://news.163.com/ 新闻 跟腾讯的新闻版式大体没有大的变化,只是细节. 2. http://news.163.com/photo/#Curren ...

  5. Lua-简洁、轻量、可扩展的脚本语言

    转自:http://rmingwang.com/The-Programming-Language-Lua.html 1. 一.Lua安装及常用库的安装 2. 1.1 Ubuntu $ sudo apt ...

  6. 老男孩Python高级全栈开发工程师【真正的全套完整无加密】

    点击了解更多Python课程>>> 老男孩Python高级全栈开发工程师[真正的全套完整无加密] 课程大纲 老男孩python全栈,Python 全栈,Python教程,Django ...

  7. 一站式WPF--依赖属性(DependencyProperty)一

    Windows Presentation Foundation (WPF) 提供了一组服务,这些服务可用于扩展公共语言运行时 (CLR) 属性的功能,这些服务通常统称为 WPF 属性系统.由 WPF ...

  8. [.net 面向对象程序设计进阶] (17) 多线程(Multithreading)(二) 利用多线程提高程序性能(中)

    [.net 面向对象程序设计进阶] (17) 多线程(Multithreading)(二) 利用多线程提高程序性能(中) 本节要点: 上节介绍了多线程的基本使用方法和基本应用示例,本节深入介绍.NET ...

  9. [.net 面向对象编程基础] (17) 数组与集合

    [.net 面向对象编程基础] (17) 数组与集合 学习了前面的C#三大特性,及接口,抽象类这些相对抽象的东西以后,是不是有点很累的感觉.具体的东西总是容易理解,因此我们在介绍前面抽象概念的时候,总 ...

随机推荐

  1. R中unlist函数的使用

    买的书里面实例讲的不清不楚,所以看帮助文档了 用法:unlist(x, recursive = TRUE, use.names = TRUE) 帮助文档讲x可以是向量或者列表,如果是向量,则原样返回, ...

  2. MySQL的limit分页性能测试加优化

    日常我们分页时会用到MySQL的limit字段去处理,那么使用limit时,有什么需要优化的地方吗?我们来做一个试验来看看limit的效率问题:环境:CentOS 6 & MySQL 5.71 ...

  3. 重新认识new

    前言 感谢大佬:https://www.cnblogs.com/luxiaoxun/archive/2012/08/10/2631812.html www.cplusplus.com 因为这段时间在重 ...

  4. 不同字符串,HashCode可能相同

    不同的字符串,hashcode可能相同. 先看例子: @Test public void test6(){ System.out.println("ABCDEa123abc".ha ...

  5. Python 进阶_OOP 面向对象编程_实例属性和方法

    目录 目录 构造器和解构器 构造器 __init__ 真构造器 __new__ 解构器 __del__ 实例方法 Python 中的 抽象方法 实例属性 查看实例属性 实例属性和类属性的区别 访问不可 ...

  6. Html5 学习笔记 【PC固定布局】 实战6 咨询页面

    最终效果: Html页面代码: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta char ...

  7. C# String相关

    1.去掉字符串中的所有的空 string s = " select * from \r\n where a =b "; s = Regex.Replace(s, @"\s ...

  8. 【算法】快速数论变换(NTT)初探

    [简介] 快速傅里叶变换(FFT)运用了单位复根的性质减少了运算,但是每个复数系数的实部和虚部是一个余弦和正弦函数,因此系数都是浮点数,而浮点数的运算速度较慢且可能产生误差等精度问题,因此提出了以数论 ...

  9. 源码包安装Mysql

    特殊原因我需要装在个人用户下 libtool-2.4.2.tar.xz mysql-5.1.37.tar.gz     1.解压libtool-2.4.2.tar.xz tar -xvf libtoo ...

  10. 【问题解决方案】git/github本地和远程仓库的重命名

    参考: CSDN博文:在Github上重命名仓库 背景: 偶然终于看到一条规范里写着: "通常(注意是通常,尤其是 Web 相关的项目) repo 的命名用小写英文,多个字母之间用连字符(比 ...