2010-11-25 10 views
0

私は、たとえば3Dプレーヤーを表すModelクラスを持っています。この問題を解決するためにデザインパターンが必要です

モデルは、ベース用の1つまたは複数のコンポーネントで構成されます。例えば、コンポーネントは、胴体の形状を表すことができます。 (コンポーネントはModelオブジェクト内のリストに格納されます)

モデルにコンポーネントを追加すると、オブジェクトの構造のようなツリーが作成されます。各コンポーネントには独自の子リストがあります。胴体は、2つの別々の上腕構成要素、2つの別々の上脚構成要素、および首構成要素という多くの子構成要素を有することができる。ネックコンポーネントは、ヘッドコンポーネントを参照します。

これは、実際にはComponentオブジェクトの階層を作成します。

概要:このアプリケーションでは、コンポーネントを自由に編集および削除する機能が必要です。上で説明したように、それらを相互接続して階層を形成することができるため、親コンポーネントはどのように子コンポーネントの変更について知ることができますか?

誰でも、この問題にどのようなデザインパターンが対応しているのでしょうか?

答えて

1

単純なobserver patternを使用して、親コンポーネントが子を観察しているところがあります。

プログラミング言語でイベント通知がサポートされている場合は、変更が加えられたときに発生した子イベントを公開することができます。子が親に追加されると、親は関連するイベントにサブスクライブし、変更が発生したときに通知を受け取ります。子が削除されると、親は退会します。

+0

恐ろしい:) – Daniel

+0

また、コンポジットパターンでコンポーネントを実装することを検討してください。 http://en.wikipedia.org/wiki/Composite_pattern –

+0

ええ、それは私がそれをやった方法です:)。再度、感謝します :) – Daniel

関連する問題