当前用的是 multicore 版本,但一般只需用到一个 Facade 实例;
当前项目定义了key为MAIN的 Facade 实例,后续有需要再增加;
DataObject(VO) 负责数据模型;
Proxy 负责域逻辑,并对外公布操作数据对象的 API;
它封装了所有对数据模型的操作,不管数据是客户端还是服务器端的,对程序其他部分来说就是数据的访问是同步还是异步的。
Mediator 和 Proxy 可以提供一些操作接口让 Command 调用来管理 ViewComponent 和 Model( Data Object),同时对 Command 隐藏具体操作的细节。
View 层只负责界面的绘制,其他交由 Mediator 负责;
界面创建时给界面对应的 Mediator 进行注册 (Facade.registerMediator) ;
界面销毁时注销对应 Mediator(Facade.removeMediator);
这些一般都是由 UIManager 统一管理;
在 (listNotificationInterests) 中添加事件监听;
在 (handleNotification) 中对事件进行处理;
频繁通过 Notification 进行数据通信可能会加重通信负担,那么这时候可以通过**(Facade.retrieveProxy)**这样的方式直接获取数据;
UI统一调用UIManager的接口创建,mediator层只需要在UIDefine中配置好即可,UIManager会统一对mediator层进行注册(创建UI时会注册,销毁UI时会注销)。
通过 (registerCommand) 添加事件监听;
通过 (removeCommand) 移除事件监听;
尽量使用 Command ,让 Command 成为 Mediator 与 Proxy 之间通讯的唯一桥梁;
Mediator 和 Proxy 中发出的 Notification ,接收者一定是某个 Command ;
然后再由 Command 处理并将结果转发给真正的消息接收者,Command 就算仅仅起一个转发作用,仅仅有不到10行代码,也要创建一个 Command 类。
新增Listener类,将UI层与游戏核心逻辑解耦,游戏核心逻辑可通过addListener添加事件监听,具体示例看GameControl。
待续。。。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。