1

私は、各ウィンドウが個別のクラスであるいくつかの異なるウィンドウを実装しているアプリケーションを作成しています。ここで、何らかの方法で単一の構成オブジェクトをそれらすべてに渡す必要があります。私のGUIは、独自の子ウィンドウを作成するメインウィンドウが1つあるように設計されており、これらの子ウィンドウは独自の子ウィンドウを持つことができます(したがって、初期化部分ですべてのウィンドウを作成して構成にフィードする可能性はありません最初から全員反対)…

この構成オブジェクトをそれらの間で共有するためのベストプラクティスは何ですか? 常にコンストラクターを介して渡すかfinal public static、必要に応じて各ウィンドウオブジェクトにアクセスさせますか?

ありがとう

4

2 に答える 2

3

常にコンストラクターを通過します。可変静力学を避けてください。

あなたは古い学校にいるように聞こえますが、すべてを拡張します。クラスを拡張する必要がない場合(通常、メソッドをオーバーライドしていない場合)、クラスを拡張しないでください。「継承よりも構成を優先する。」

OTOH、大きな「すべてを知っている;すべてがそれを知っている」コンテキストクラスも良くありません。物事を小さく保ち、各クラスが1つのことを実行します(「1つのこと」の適切な定義のために)。

于 2010-03-16T22:46:48.763 に答える
-2

この場合、2番目のアプローチをお勧めします。何かのようなもの:

Configuration.getCurrentConfig ();

JFrame をサブクラス化し、さらに継承することで、同様の問題を解決することも確認しました。

public abstract class BasicFrame extends JFrame {

   protected BasicFrame (Map<String, String> configParams) {
      ...
   }
}

public class SomeFrame extends BasicFrame {

   public SomeFrame (Map<String, String> configParams, String title) {
      super (configParams);
      ...
   }
}
于 2010-03-16T22:43:31.213 に答える