我在设计我的游戏引擎时遇到了麻烦。例如:
当我想在 资源 ,我想在 资源管理器 类来管理我的引擎上的资源。
本类承担多项责任 :
这对我有用,但我已经阅读了每个 OOP 设计教程,经理是 暧昧 与 的类高耦合和 低内聚 .我理解这一点,我同意,但我几乎搜索了整个互联网,找到了一个真正的 Managers 替代方案,但我没有找到。
有人解释,比如一个ResourceManager应该分成更小的类:A 资源工厂 , 资源集合 , 资源缓存 , ResourceFacade ...
我知道所有这些设计模式(Factory、Collection、Facade 等),但我实际上不明白如何将它们结合起来以创建(易于管理)资源管理系统。
我的问题是:是否有一些带有明确示例的教程或文档?有人可以解释一下这个系统的例子吗?如果你能用 C++ 或其他类似的语言写一个小例子,我会感谢你。
在此先感谢您的帮助!
最佳答案
也许:
ResourceLoader
ResourceMapper
CachedResourceLoader
/这个使用 ResourceLoader
当它还没有加载时 关于“释放未使用的资源”的评论中的额外信息:
首先,让我们清楚我们只涉及上述两个:ResourceMapper 和 CachedResourceLoader。由于 ResourceLoader 实例是从 CachedResource 中使用的,因此它不会暴露给其余的代码。
请注意,以下内容取决于领域知识,因此我将保持开放状态/您将知道其中哪些有意义/适用于您拥有的部分。我想说这里有3个选择:
最后一点:我认为将责任分开并对此感到强烈是绝对值得的。也就是说,这是我最遵循的 SOLID 原则,我不记住模式名称,也不太注意像 Manager 类这样的规则是不好的。
关于oop - 在一个好的 OOP 设计中,我们应该使用什么来代替 "manager"类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4068579/