2011-07-08 15 views
1

私は、そのコンストラクタから設定された同じ情報オブジェクトにアクセスしているいくつかのGUIクラスを持っています。 各GUIクラスはgui情報オブジェクトを異なる方法で表示します。オブジェクト間のオブジェクトの受け渡し

コンストラクタでオブジェクトを毎回初期化するか、オブジェクトをメモリに追加して、GUIクラスがそれを必要とするたびに使用する方が良いですか?どちらの方法も設計パターンに入りますか?

+1

2番目の方法はおそらくシングルトンパターンです。できるだけシングルトンを避けるようにしてください。 –

+0

さて、各GUIクラスは、そのオブジェクトの新しいインスタンスをコンストラクタの右側に作成しますか?しかし、オブジェクト内の情報は常に同じですか? –

+0

@Damoklesオブジェクトは常に同じタイプですが、メンバー変数の中にはGUIクラスごとに異なる値を持つものがあります。 –

答えて

2

特定のオブジェクトデザインパターンを読み込む前に、MVC(モデルビューコントローラ)パターンを読み込むのが適切です。それはおそらく最も一般的に使われているアーキテクチャのパターンであり、Googleの検索では数多くの優れた資料が出てくるでしょう(この場合はWikipediaも良い場所になるでしょう)

あなたが暗示した問題に対処するために使用されていますさまざまな表示ロジックが同じ情報を保持するロジックに頻繁にアクセスする必要がある場所。 MVCアーキテクチャを使用するアプリケーションでは、コードは、UIに情報を表示するコード、情報を保持するコード(またはモデル化する)、アプリケーションとアプリケーションのフローを制御するコードの3つのカテゴリに分かれていますイベント。 MVCアプリケーションは、一般的にリスナーや上記のような他のイベント設計パターンを使用します。

1

私は依存性注入を提案しますが、そこには多くのフレームワークがあります。私のお気に入りはguiceしかしYMMVです。

1

戦略パターンの使用はどうですか?基本的にはちょうどそのような単純動作の属性を設定した情報を表示するclasesでクラス

public behavior1 implementse GUIBehavior... 

//のセット

public interface GUIBehavior { 

} 

//と同じインターフェイスを継承するクラスのセットを定義します

private GUIBehavior myCurrentBehavior; 
+0

お返事ありがとうございますが、これが元の質問にどのように答えているのかわかりません。あなたは精緻化できますか? –

+0

@ user470184各GUIは独自の動作を実装しているので、それらの動作をクラスのセットに分けることができます。また、実行時にこの動作を変更したい場合は、その属性を新しい動作にポイントするだけで済みます。 –

関連する問題