建立由多种不同类型组成的系统模型的常见解决方案是创建一个模块化系统,其中每个模块负责特定类型。例如,Wombat WombatModule模块将包含:IModule,其中IModule接口具有GetCount()(查找若干个Wombats)和Update()(更新所有Wombats状态)等方法。用于建模的体系结构
更多面向对象的方法是为每个项目类型添加类并为每个项目创建一个实例。这将使类Wombat:IItem的方法像Update()(更新这个wombat)。
从代码的角度来看,差异可以忽略不计,但运行时间有显着不同。面向模块的解决方案肯定更快:更少的对象创建,更容易优化所有袋熊通用的操作。
问题出现在类型和模块数量增长时。要么你失去了大多数的性能优势,因为每个模块只支持几个项目,或者模块的复杂性增长,以适应一种普通类型的稍微不同的项目 - 比如胖胖的瘦子。或两者。
至少有一次,我看到它降级到糟糕的状态,当所有WombatModule做的是保持隐藏的Wombat对象的集合并在循环中运行它们的方法。
当性能不如长期开发的问题更少时,您能确定使用模块而不是每个项目对象的任何体系结构原因吗?可能还有另一种可能性,我错过了?