Cocos2d-js中的简易MVC框架(二)数据模型Model
时间:2022-07-22
本文章向大家介绍Cocos2d-js中的简易MVC框架(二)数据模型Model,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。数据模型Model在MVC结构中扮演者非常重要的较色。
在我写的这套MVC结构中Model作为本地数据逻辑存储对象来使用,主要负责监听服务器数据返回、通知控制器修改视图、处理数据逻辑和保存数据对象。
IModel作为model的基类,主要实现接口如下:
game.IModel = cc.Class.extend({
ctor:function () { },
init:function () {
throw new Error("SubClass not init subscribe function.");
},
//Use this function to send notification.
send:function (key, obj) {
game.Notification.send(key, obj);
}
});
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) {
model.init();
var isExist = game.Facade._modelMap.contains(cls);
if (isExist) {
cc.log("Model:" + cls + " have already exists!");
} else {
game.Facade._modelMap.put(cls, model);
}
}
cls为类名,model为实例对象,注册后在mediator中会提供接口方便获取注册的model实例,具体获取方法在介绍mediator时会讲到。注册model的方法如下:
//注册model
GameControler.registModel = function () {
game.Facade.registerModel(model.UserModel, new model.UserModel());
}
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 详解Centos7.2编译安装zabbix3.2(详细步骤)
- Linux下误删messages文件的找回方法
- 自制YUM仓库的步骤讲解
- 解决centos7中tomcat启动与本机访问问题
- centos6.5配置ssh免秘钥登陆执行pssh命令的讲解
- 使用PXE自动安装CentOS7.6的教程详解
- Ubuntu环境下SSH的安装及使用详解
- CentOS8 网卡配置文件
- Linux加载vmlinux调试
- Linux 中删除文本中的回车字符的方法
- 详解Linux下出现permission denied的解决办法
- Linux在丢失的情况下重置密码的教程
- Linux内核宏container_of的深度剖析
- CentOS 7.3配置Nginx虚拟主机的方法步骤
- Linux下alias命令的用法详解