legend2---17、legend2里面怎么面向对象
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里面怎么面向对象的更多相关文章
- 【17】有关python面向对象编程的提高【多继承、多态、类属性、动态添加与限制添加属性与方法、@property】
一.多继承 案例1:小孩继承自爸爸,妈妈.在程序入口模块再创建实例调用执行 #father模块 class Father(object): def __init__(self,money): self ...
- Java-Java面向对象程序设计
2017-10-09 17:23:52 在面向对象技术中,将客观世界中的一个事物作为一个对象来考虑,比如有个张先生,他就是一个对象.每个对象都有自己的属性和行为.张先生的属性根据需要有姓名.性别.身高 ...
- python day10: 反射补充,面向对象
目录 pythdon day 10 1. 反射补充 16. 面向对象 16.1 面向对象初步介绍 16.2 面向对象和面向过程区别 16.3 对象的进化 17. 类class 17.1 类的定义 17 ...
- 5. web前端开发分享-css,js深化篇
一. css练习网易专题: 1. http://news.163.com/ 新闻 跟腾讯的新闻版式大体没有大的变化,只是细节. 2. http://news.163.com/photo/#Curren ...
- Lua-简洁、轻量、可扩展的脚本语言
转自:http://rmingwang.com/The-Programming-Language-Lua.html 1. 一.Lua安装及常用库的安装 2. 1.1 Ubuntu $ sudo apt ...
- 老男孩Python高级全栈开发工程师【真正的全套完整无加密】
点击了解更多Python课程>>> 老男孩Python高级全栈开发工程师[真正的全套完整无加密] 课程大纲 老男孩python全栈,Python 全栈,Python教程,Django ...
- 一站式WPF--依赖属性(DependencyProperty)一
Windows Presentation Foundation (WPF) 提供了一组服务,这些服务可用于扩展公共语言运行时 (CLR) 属性的功能,这些服务通常统称为 WPF 属性系统.由 WPF ...
- [.net 面向对象程序设计进阶] (17) 多线程(Multithreading)(二) 利用多线程提高程序性能(中)
[.net 面向对象程序设计进阶] (17) 多线程(Multithreading)(二) 利用多线程提高程序性能(中) 本节要点: 上节介绍了多线程的基本使用方法和基本应用示例,本节深入介绍.NET ...
- [.net 面向对象编程基础] (17) 数组与集合
[.net 面向对象编程基础] (17) 数组与集合 学习了前面的C#三大特性,及接口,抽象类这些相对抽象的东西以后,是不是有点很累的感觉.具体的东西总是容易理解,因此我们在介绍前面抽象概念的时候,总 ...
随机推荐
- R中unlist函数的使用
买的书里面实例讲的不清不楚,所以看帮助文档了 用法:unlist(x, recursive = TRUE, use.names = TRUE) 帮助文档讲x可以是向量或者列表,如果是向量,则原样返回, ...
- MySQL的limit分页性能测试加优化
日常我们分页时会用到MySQL的limit字段去处理,那么使用limit时,有什么需要优化的地方吗?我们来做一个试验来看看limit的效率问题:环境:CentOS 6 & MySQL 5.71 ...
- 重新认识new
前言 感谢大佬:https://www.cnblogs.com/luxiaoxun/archive/2012/08/10/2631812.html www.cplusplus.com 因为这段时间在重 ...
- 不同字符串,HashCode可能相同
不同的字符串,hashcode可能相同. 先看例子: @Test public void test6(){ System.out.println("ABCDEa123abc".ha ...
- Python 进阶_OOP 面向对象编程_实例属性和方法
目录 目录 构造器和解构器 构造器 __init__ 真构造器 __new__ 解构器 __del__ 实例方法 Python 中的 抽象方法 实例属性 查看实例属性 实例属性和类属性的区别 访问不可 ...
- Html5 学习笔记 【PC固定布局】 实战6 咨询页面
最终效果: Html页面代码: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta char ...
- C# String相关
1.去掉字符串中的所有的空 string s = " select * from \r\n where a =b "; s = Regex.Replace(s, @"\s ...
- 【算法】快速数论变换(NTT)初探
[简介] 快速傅里叶变换(FFT)运用了单位复根的性质减少了运算,但是每个复数系数的实部和虚部是一个余弦和正弦函数,因此系数都是浮点数,而浮点数的运算速度较慢且可能产生误差等精度问题,因此提出了以数论 ...
- 源码包安装Mysql
特殊原因我需要装在个人用户下 libtool-2.4.2.tar.xz mysql-5.1.37.tar.gz 1.解压libtool-2.4.2.tar.xz tar -xvf libtoo ...
- 【问题解决方案】git/github本地和远程仓库的重命名
参考: CSDN博文:在Github上重命名仓库 背景: 偶然终于看到一条规范里写着: "通常(注意是通常,尤其是 Web 相关的项目) repo 的命名用小写英文,多个字母之间用连字符(比 ...