2010-11-25 76 views
0

我有一個模型類,例如代表一個3D播放器。我需要一個設計模式來解決這個問題

一個模型由一個或多個基礎組件組成。例如,一個組件可以代表軀幹的形狀。 (組件存儲在模型對象的列表中)

當我們向模型添加組件時,我們得到了一個類似於正在形成的對象結構的樹,因爲每個組件都有它自己的子組件列表,例如一個組件軀幹可以有許多兒童組件,即2個獨立的上臂組件,2個獨立的大腿組件和一個頸部組件。然後頸部部件具有對頭部部件的參考。

這實際上創建了組件對象的層次結構。

簡介:該應用程序需要能夠自由編輯和刪除組件。如上所述,由於它們可以相互關聯以形成層次結構,所以父組件如何知道其子組件的更改?

任何人都知道什麼設計模式解決這個問題?

回答

1

您可以使用簡單的observer pattern,其中您的父組件正在觀察他們的孩子。

如果您的編程語言支持事件通知,則可以在發生更改時觸發Child引發的事件。當孩子被添加到父母時,父母會訂閱相關事件並在變化發生時收到通知。當孩子被刪除時,父母退訂。

+0

真棒:)謝謝:) – Daniel 2010-11-25 12:13:01