2010-05-13 123 views
1

我無法正確建模可以使用模板的相關對象。這不是家庭作業,而是大學小型項目的一部分。建模相關對象及其模板

在本申請中,用戶可以添加幾個元件,其可以是被動的或主動。每個具體元素具有不同的屬性,這些屬性必須由用戶設置。見圖1: diagram 1

由於用戶會創建很多元素,我們希望每個元素都有模板,所以一些屬性會自動填充。見圖2: diagram 2

在我看來,這是一個糟糕的設計。例如,要獲取PassiveElementA對象的所有可能模板,必須有一個僅包含PassiveElementATemplate對象的列表/集合。

必須有對元素的每個子類單獨的列表。所以如果你想添加一個新的PassiveElement-child,你還必須編輯包含所有這些單獨列表的類。

我想不出來解決這個問題的好辦法。由於具體類(即PassiveElementA,...,PassiveElementZ)具有許多不同的屬性,因此我知道的許多設計模式都不起作用。

預先感謝任何提示,和對不起我的英語不好。

回答

1

如果我理解正確的話,你和模板你的意思是對象,這將結構複雜,因此,你有很多現成的對象,其中獲得你需要他們複製,你可以考慮使用原型設計模式。否則,也許某種抽象工廠或甚至依賴注入。如果您提供決定以現在您的設計方式使用的理由,這可能會有所幫助。

+0

原型模式看起來非常好,我會嘗試一個小實現。謝謝。 – Duddle 2010-05-14 10:45:19

+0

@Duddle沒有問題,設計模式是偉大的設計知識:) ...順便說一句。如果你遇到了原型的某些空間問題,那麼檢查Flyweight模式可能會有所幫助。 – 2010-05-14 11:18:49