2014-10-20 80 views
2

我正在開發一款遊戲。我沒有爲每個遊戲實體創建一個類,而是創建了一個實體類和一個要素類。實體對象保存位置,名稱,ID和實體要素列表。我有一大堆從movefeature,fuelfeature,displayfeature等功能衍生出來的要素類......如果我需要一個移動的實體,我會添加movefeature。如果它是一輛汽車並燃燒燃料,它將獲得燃料特性。屏幕上顯示的實體具有顯示功能等。我使用哪種設計模式?

這可能是一種設計模式,有人在我之前發明了它。我的問題:這種方法是一種有效的模式,它被稱爲什麼?

+2

這可能只是一個普通的面向對象的設計決定,而不是具體的模式。你可以擁有'IMoveFeature'接口,並且具有該特性的多個實現,比如'FastMoving'或'RandomMoving',它可以讓你在運行時替換不同的特性,共享單個接口或協議,只要你喜歡就可以。這將是一個[策略](http://en.wikipedia。org/wiki/Strategy_pattern)模式。 – 2014-10-20 20:44:46

回答

1

你描述的其實只是composition和有利於composition over inheritance,這通常是一個好主意。

至於模式,我會說你大量使用它們,概念上至少如果不嚴格正確的執行方式。看一下patterns listing,你就可以通過名字和簡短的描述來自己識別一堆。由你說什麼,我猜你可能會使用以下:

  • 裝飾,戰略,複合 - 使從獨立部件和功能複雜的實體組成,
  • 廠,製造商 - 自動的創建這種複雜的實體,
  • 國,觀察員,調解員,訪客,事件,消息 - 使實體和環境的相互作用,
  • 模塊 - 整理所有這些代碼,
  • 辛格爾頓 - 爲代碼庫只是往往有一定的每所以經常,
  • 和可能是一些併發

見,圖案就像是素食主義者塔利,您剛剛結束了與一些混搭,瞭解EM與否。

相關問題