-
MVC设计模式
脚本框架遵循MVC设计模式,每个模块的主体大致分为Model(BaseModel类)、View(BaseView类、BaseWindow类、BasePanel类)、Control层(BaseManager类)。
- Model类主要负责处理协议传递的数据,包括格式化、存储、增删查改等,还负责管理View的打开或关闭等操作;
- View类主要负责直接与玩家交互的UI层面的表现处理,BaseWindow与BasePanel均继承BaseView,根据需求将界面分为“窗口”或“面板”处理。玩家在UI层的操作传递到Model类进行数据处理,处理完毕后Model又将数据传递至View执行表现(刷新)。
- Controller(Manager)类主要负责协议的请求和接收数据。同时作为对外相关model的调用接口,即不直接调用xxxModel.Instance:xxx(),而是在Manager中封装了可能要用到的方法,调用xxxManager.Instance:xxx()
2.1 View类
2.1.1 __init初始化
Window类和Panel类都继承View类。
view会率先执行__init(model)方法,该执行顺序逻辑由基类BaseClass定义。在这里会进行一些属性的初始化,例如设置数据模型对象、命名、窗口id、缓存类型、打开窗口传入参数、窗口打开和隐藏触发的事件、初始化完成触发的事件、是否全屏显示、是否进入控制队列、是否在切换场景时关闭等。
self.model为__init(model)中传入的model,self.name为在unity中该游戏物体的名称。self.windowId的设置则需要先在WindowConfig.WinID中注册一个专属id。
随后在WindowConfig.WindowList中为对应的id赋予class和model。</