RoomScene模块重构前的思考
来源:互联网 发布:锐捷冒充mac地址上网 编辑:程序博客网 时间:2024/06/07 00:36
1.函数名字的命名
initXXX ->只调用一次
比如:设置当前的玩法,那么在这个里面调用一次即可,不应该又在这里调用,又在其它的里面调用,很容易出错
updateXXX ->调用多次
比如:人数的刷新,可能过段时间就调用一次,因此不要起一个init方法
2.当前是什么玩法,玩法处于哪个阶段
if playType == XXX then
if stage == XXX then
...
elseif stage == XXX then
...
end
elseif playType == XXX then
...
end
然后,要根据当前是什么玩法,及其什么阶段,来显示界面。
3.全局变量的处理
写成service方法,不要用gt.playerData这种类似的写法,个人觉得不好.到底在service中处理gt.var 还是封装到runningScene.var
还是写到XXXService中的一个成员呢? 最好这个变量使用前起码初始化过一次,写gt中也是可以的。
比如托管状态,比如金币的一些信息:补助日期了,之类的
4.有些消息可能在界面中才发,也有可能在别的界面时,已经发了,消息注册到CommonMessage中即可.
这时候可以先拿着XXXService存储下当前的状态,然后:
1.enter时处理一下,代表在别的界面已经发了;
2.在processEvent时处理一下,代表在本次这个界面中发了.
5.最好还是想清楚了再写代码,然而有时候确实想不清楚就开始动手写了,写完后,上线的代码,不一定有把握,所以不敢重构,看来还是得多些代码才行。
6.程序块的组织:
最好将相同模块的方法用:
---------比赛场-------------
---------金币场-------------
---------通用---------------
...这样区分开来,还是不错的
initXXX ->只调用一次
比如:设置当前的玩法,那么在这个里面调用一次即可,不应该又在这里调用,又在其它的里面调用,很容易出错
updateXXX ->调用多次
比如:人数的刷新,可能过段时间就调用一次,因此不要起一个init方法
2.当前是什么玩法,玩法处于哪个阶段
if playType == XXX then
if stage == XXX then
...
elseif stage == XXX then
...
end
elseif playType == XXX then
...
end
然后,要根据当前是什么玩法,及其什么阶段,来显示界面。
3.全局变量的处理
写成service方法,不要用gt.playerData这种类似的写法,个人觉得不好.到底在service中处理gt.var 还是封装到runningScene.var
还是写到XXXService中的一个成员呢? 最好这个变量使用前起码初始化过一次,写gt中也是可以的。
比如托管状态,比如金币的一些信息:补助日期了,之类的
4.有些消息可能在界面中才发,也有可能在别的界面时,已经发了,消息注册到CommonMessage中即可.
这时候可以先拿着XXXService存储下当前的状态,然后:
1.enter时处理一下,代表在别的界面已经发了;
2.在processEvent时处理一下,代表在本次这个界面中发了.
5.最好还是想清楚了再写代码,然而有时候确实想不清楚就开始动手写了,写完后,上线的代码,不一定有把握,所以不敢重构,看来还是得多些代码才行。
6.程序块的组织:
最好将相同模块的方法用:
---------比赛场-------------
---------金币场-------------
---------通用---------------
...这样区分开来,还是不错的
阅读全文
0 0
- RoomScene模块重构前的思考
- 重新思考 LinkedIn 的认证模块架构
- API模块设计问题的思考
- lua 模块思考(1)
- 对一个数据转换模块的设计思考
- 关于SIP库模块划分的重思考
- 第14篇 - 关于模块复用的思考
- 菜单面板管理者(管理模块)的思考
- 关于python导入模块和package的一些深度思考
- 平行模块思考和模块双向关系思考
- 上线页面模块添加思考
- 对思考的思考
- 关于思考的思考
- 关于思考的思考
- 有关思考的思考
- 判题系统的程序判题模块的制作与思考(1)
- 关于安卓 模块内的manifest文件使用占位符的思考
- 最近关于物联网模块创新方面的思考(如何让物联网真正落地生根)
- QT 文件夹操作(最精简的文件遍历操作)
- form提交表单中包含time类型数据
- java时间转换
- 关于警笛你不知道的事
- zmq 多路复用poll无法收包的问题(朴素的比对法解决问题)
- RoomScene模块重构前的思考
- Springboot下swagger-ui.html访问不到
- fildReader接口的示例应用
- Leetcode之Next Permutation 问题
- bootstraptable点击行事件
- CentOS 7 下不同主机间 ssh 免密码登录
- 朴素贝叶斯分类器简介及C++实现(性别分类)
- c#程序如何获取管理员权限
- svn_client API 参考