ウィンドウのポップアップ、いくつかのパネルやその他のコンポーネントで埋めるなどの単純なタスクを処理するための GUI クラスを作成していますが、複雑なことは何もありません。
ベストプラクティスは何ですか:
GUI クラス内のすべてに対して静的呼び出しを行う
GUI クラスのオブジェクトをインスタンス化し、そのオブジェクトのメソッドを呼び出します。「いつもの」方法。
私はJavaが初めてであることに注意してください。私が何かを誤解しているなら、喜んで学びたいと思います。
ありがとう!
ウィンドウのポップアップ、いくつかのパネルやその他のコンポーネントで埋めるなどの単純なタスクを処理するための GUI クラスを作成していますが、複雑なことは何もありません。
ベストプラクティスは何ですか:
GUI クラス内のすべてに対して静的呼び出しを行う
GUI クラスのオブジェクトをインスタンス化し、そのオブジェクトのメソッドを呼び出します。「いつもの」方法。
私はJavaが初めてであることに注意してください。私が何かを誤解しているなら、喜んで学びたいと思います。
ありがとう!
" " のような単一の静的メソッドをgetInstance
どこかに置き、他の場所では通常の OOP を使用することを提案します。GUI 内ですべてを静的にすると、継承、ポリモーフィズム、またはその他の OOP の通常の機能が必要であることが判明した場合に、後で問題が発生する可能性があります。
私は 2 番目のアプローチ、つまり GUI クラスのオブジェクトをインスタンス化します。これは、TDD アプローチに関して静的メソッドが適切ではないためです。私がよくないと言うとき、それは静的メソッドをモックするのが難しいことを意味します。
理想的には、メソッドが object の状態を処理するときは常にインスタンス メソッドを使用する必要があります。オブジェクトの状態に依存しないユーティリティ メソッドの場合は、静的メソッドを選択する必要があります。
しかし、TDD を取り上げると、カスケードされた静的メソッドが存在する場合、unitils のような一部のフレームワークや、静的メソッドのモックをサポートしない他のさまざまなフレームワークでは、junit を作成するのが難しい場合があります。静的メソッドに向かうため。
クラスレベルのメソッドとは別に、ポリモーフィズムのようなおっとモデルの他の機能を失います
私は常にスレッドセーフなシングルトンを使用して、GUI のある部分から GUI の別の部分にイベントを委譲します。
「通常の」方法で行うことを強くお勧めします。一般に、可能であれば静的メソッド (!) を使用することは良い方法ですが (util クラスへの外部化、テストの可能性の向上、再利用の容易さ)、GUI にはお勧めしません。GUI を静的にすると、シングルトンのように動作するため、ウィンドウ、フレームなどの複数のインスタンスを同時に作成する機会が得られます。
必要に応じて GUI のオブジェクトをインスタンス化し、メッセージまたはアクションの交換にイベントを使用する必要があります。静的かどうか - それはあなた次第です。