单例管理器
我们通常会将代码按照功能划分模块, 例如战斗模块, 剧情模块, 物品管理模块... 而管理器, 就是每个模块中负责统一调配和内外交互的部分. 例如, 触发剧情和战斗时, 都需要根据背包中物品的不同数量做出不同的表现. 这时应调用物品管理模块提供的查找方法来获取信息, 而不是直接进行查找操作. 这样增加了代码复用, 降低了模块间的耦合, 使得逻辑更加简单清晰.
对于管理器而言, 其实例必须始终存在(上面的例子中, 即使背包没有被打开, 仍然会出现查询物品的需求), 甚至是跨场景存在. 同时实例要易于获取. 为此我们使用单例模式来设计管理器. 通过静态字段提供快捷访问, 维持管理器的跨场景存在, 同时确保管理器的唯一性.
UI 框架
UI 的创建与维护是大部分游戏都逃不开的话题, 为此需实现 UI 管理器.
提供统一的创建, 销毁方法
- 维护一个以 UI Type 为 Key 的字典来管理所有打开的 UI 对象
- 支持按名称或类型查找 UI 实例
- 所有 UI 类都继承共同的基类(或者更好地, 实现同一个接口), 以便调用者执行开启/关闭, 显示/隐藏等操作, 也便于管理器维护
这样, 调用者能简单地控制 UI 窗口的行为, 而无需关心诸如资源查找, 窗口唯一性等繁琐细节, 更无需负责 UI 实例的维护, 一切都交给管理器.
暂无关于此日志的评论。