所以我有一個包含幾個大項目的解決方案,我試圖將其分解爲更多獨立責任的較小項目。這是一款遊戲,但我主要是LOB開發人員,我認爲這些原則可能是普遍的,我想我可以在這裏學到一些東西。遊戲的建築模式
某些對象的依賴關係有點過於緊密交織在一起,我希望對如何解決它們有所幫助。或者,也許某種模式或抽象可能會使他們更易於管理。
Ares.Core.World在其中有類似生物,物品等的類。它們都從實體繼承,實體知道地圖上存在的單元格。它通過持有對Ares.Core.UI.MapControls.MapCell的引用來實現此目的...並且您可以看到電線已經越過了。
Ares.Core.UI.MapControls包含Map和MapCell,其中每個都包含它們包含的生物和物品清單。 MapCell也繼承自Ares.Core.World.Entity,因爲它非常優雅地解決了一些早期的問題 - 例如,所有的實體都有庫存。
我想找到一種方法,用戶界面和世界拆分爲三個獨立的項目(Ares.World和Ares.UI),因爲UI和總體世界也許應該是單獨的擔憂。但正如你所看到的,現在這兩個項目需要相互引用,並且不允許循環引用。
我想知道是否有任何可能有助於這種情況的架構模式。謝謝!
您將在programmers.stackexchange.com上得到此問題的良好回覆。 – 2011-05-16 21:43:45
很高興能從Entity中派生出所有的東西,但是它會導致分離程度模糊到沒有分離的程度。我相信這是第一步。我同意@Rick – IAbstract 2011-05-16 21:55:24
我通常通過爲實體(模型)創建第三個項目來解決循環引用,並且擁有所有我的實體類,這些實體類將用於在此處聲明的World和UI項目中。 – Dimitri 2011-05-16 22:42:49