1 Star 2 Fork 0

Simon / LayaPuremvc

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
README.md 2.47 KB
一键复制 编辑 原始数据 按行查看 历史
Simon 提交于 2021-01-07 16:28 . 说明。。。。。

LayaFramework

puremvc说明

相关资料1 相关资料2

#Facade:

当前用的是 multicore 版本,但一般只需用到一个 Facade 实例;

当前项目定义了key为MAIN的 Facade 实例,后续有需要再增加;

#Proxy(Model(VO)):

DataObject(VO) 负责数据模型;

Proxy 负责域逻辑,并对外公布操作数据对象的 API;

它封装了所有对数据模型的操作,不管数据是客户端还是服务器端的,对程序其他部分来说就是数据的访问是同步还是异步的。

MediatorProxy 可以提供一些操作接口让 Command 调用来管理 ViewComponentModel( Data Object),同时对 Command 隐藏具体操作的细节。

#Mediator(View):

View 层只负责界面的绘制,其他交由 Mediator 负责;

界面创建时给界面对应的 Mediator 进行注册 (Facade.registerMediator)

界面销毁时注销对应 Mediator(Facade.removeMediator)

这些一般都是由 UIManager 统一管理;

(listNotificationInterests) 中添加事件监听;

(handleNotification) 中对事件进行处理;

频繁通过 Notification 进行数据通信可能会加重通信负担,那么这时候可以通过**(Facade.retrieveProxy)**这样的方式直接获取数据;

UI统一调用UIManager的接口创建,mediator层只需要在UIDefine中配置好即可,UIManager会统一对mediator层进行注册(创建UI时会注册,销毁UI时会注销)。

#Command(Controller)

通过 (registerCommand) 添加事件监听;

通过 (removeCommand) 移除事件监听;

尽量使用 Command ,让 Command 成为 MediatorProxy 之间通讯的唯一桥梁;

MediatorProxy 中发出的 Notification ,接收者一定是某个 Command

然后再由 Command 处理并将结果转发给真正的消息接收者,Command 就算仅仅起一个转发作用,仅仅有不到10行代码,也要创建一个 Command 类。

#Listener

新增Listener类,将UI层与游戏核心逻辑解耦,游戏核心逻辑可通过addListener添加事件监听,具体示例看GameControl。

待续。。。

1
https://gitee.com/simon94/laya-framework.git
git@gitee.com:simon94/laya-framework.git
simon94
laya-framework
LayaPuremvc
lockstep

搜索帮助