看了一个MVC结构的UI框架,记录一下。
- view层,用来控制UI节点。实现上,一般会实现一个baseWindow类,实现基础的界面控制(如显示,隐藏,加载,事件注册)。每个view都继承自该baseWindow,实现自己的功能。
- model层,单纯的数据对象。界面和数据是完全解耦的,各自的改变都不会影响对方。
- Controller层,单例类,可以读写model,被view层获取,控制数据的读写。
- ui界面打开时添加监听,关闭时销毁监听。除了input的监听,也可以是数据变换的监听。
- 实现windowManager单例类管理所有的view。
*关于我们项目:*类似与MVC结构,使用view层控制所有的UI,通过各种模块的manager提供的接口获取和操作数据。model层则直接是lua的table(只要model的结构相同,都可以通过对应模块的接口处理,比如角色和商店的背包结构,都可以通过背包模块进行读写操作)。另外的区别是UI的监听事件,监听不是通过注册回调的方式,而是通过引擎为view提供的click函数进行处理。