建立由多種不同類型組成的系統模型的常見解決方案是創建一個模塊化系統,其中每個模塊負責特定類型。例如,Wombat WombatModule模塊將包含:IModule,其中IModule接口具有GetCount()(查找若干個Wombats)和Update()(更新所有Wombats狀態)等方法。用於建模的體系結構
更多面向對象的方法是爲每個項目類型添加類併爲每個項目創建一個實例。這將使類Wombat:IItem的方法像Update()(更新這個wombat)。
從代碼的角度來看,差異可以忽略不計,但運行時間有顯着不同。面向模塊的解決方案肯定更快:更少的對象創建,更容易優化所有袋熊通用的操作。
問題出現在類型和模塊數量增長時。要麼你失去了大多數的性能優勢,因爲每個模塊只支持幾個項目,或者模塊的複雜性增長,以適應一種普通類型的稍微不同的項目 - 比如胖胖的瘦子。或兩者。
至少有一次,我看到它降級到糟糕的狀態,當所有WombatModule做的是保持隱藏的Wombat對象的集合並在循環中運行它們的方法。
當性能不如長期開發的問題更少時,您能確定使用模塊而不是每個項目對象的任何體系結構原因嗎?可能還有另一種可能性,我錯過了?