Cocos2d-js中的简易MVC框架(二)数据模型Model
模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。数据模型Model在MVC结构中扮演者非常重要的较色。 在我写的这套MVC结构中Model作为本地数据逻辑存储对象来使用,主要负责监听服务器数据返回、通知控制器修改视图、处理数据逻辑和保存数据对象。 IModel作为model的基类,主要实现接口如下: game.IModel = cc.Class.extend({ ctor作为构造函数不必多说。Init函数子类必须去实现,在初始化Model对象时init函数会自动被调用,子类对象可以在init函数中做一些初始化操作等,在网络游戏项目中对服务器数据返回的监听也是放在init函数中进行注册。Send是进行消息分发的函数,有两个参数key、obj,key是消息的唯一id,obj是消息要传递的对象。在mvc的结构中model通过发送通知告诉mediator控制器数据变化,mediator再根据自己的逻辑进行处理然后控制View进行更新。一般Model可以被mediator持有。 在Facade中提供了一个注册model的共有接口在游戏初始化中提供调用: game.Facade.registerModel = function (cls,model) { cls为类名,model为实例对象,注册后在mediator中会提供接口方便获取注册的model实例,具体获取方法在介绍mediator时会讲到。注册model的方法如下: //注册model 如果你喜欢我的文章就关注我吧:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- cocos2dx 音频模块分析(4): 音效部分
- 阐述从Flash移植到iOS的框架和平台差异性
- swift语言的学习笔记六(ARC-自动引用计数,内存管理)
- c# – 检查四个布尔变量是否具有相等的值,不明显?
- react native gradle assembleRelease打包运行失败,没有生
- osx – 无法设置NSMenuItem的子菜单(FinderSync扩展)
- c – 当一个方法只接受Foo * const时,是否应该const_cast“
- as3中对xml的创建,增加,删除,修改,检索
- c++ 如何让CMake在IDE中显示不属于任何二进制目标的头文件?
- vue与TypeScript集成配置最简教程(推荐)