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#三大特性,及接口,抽象类这些相对抽象的东西以后,是不是有点很累的感觉.具体的东西总是容易理解,因此我们在介绍前面抽象概念的时候,总 ...
随机推荐
- jQuery 问题收集
1.页面动态生成的dom元素,监听事件失效.需用事件代理进行监听. 对于动态绑定元素可以这样写 $(document).on('click', '.xxx', function() { // do s ...
- 【前端技术】一篇文章搞掂:微信小程序
实战: 1.[openId]获取openId 有如下几种方法: 通过wx.login()获取临时登录凭证 code,然后通过code2session获取openId wx.login():https: ...
- iPad如何恢复
iPad在有网络连接的情况下,可以通过iCloud进行恢复. 没有连接WiFi的情况下,只能通过USB连接才能恢复. ①下载最新版本的iTunes:https://support.apple.com/ ...
- 回复git@vger.kernel.org的注意事项
比如回复这封邮件 https://public-inbox.org/git/db2dcf54-8b1c-39b1-579c-425ef158c6a1@kdbg.org/ Reply instructi ...
- error C2664: “ATL::CStringT<BaseType,StringTraits>::Remove”: 不能将参数 1 从“const char [2]”转换为“char”
转自VC错误:http://www.vcerror.com/?p=1395 问题描述: 代码: CString str("asdfafda"); str.Remove(" ...
- CSS最基础的语法和三种引入方式
**CSS语法** CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明.选择器通常是您需要改变样式的 HTML 元素. selector {declaration1; declaration ...
- 记C函数指针的“小坑”
今天遇到一个C函数指针的小坑,索性记下来. 我在a.c 文件里面,引用b.c 文件的函数声明作为指针引用 比如在a.c生命一个函数指针 typedef void (*free)(void *val) ...
- 初学Selenium遇上的问题
1.IWebDriver driver = new InternetExplorerDriver();运行时报关于protecte model的错误 解决办法就是用如下代码设置IEDriverOpit ...
- 转 LoadRunner错误处理函数
在脚本的Run-time Settings中,可以设置在脚本运行过程中发生错误的处理方式.进入到Run-time Settings中,切换到Miscellaneous标签页,可以看到Error Han ...
- 日志=>flume=>kafka=>spark streaming=>hbase
日志=>flume=>kafka=>spark streaming=>hbase 日志部分 #coding=UTF-8 import random import time ur ...