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