3

ウィンドウのポップアップ、いくつかのパネルやその他のコンポーネントで埋めるなどの単純なタスクを処理するための GUI クラスを作成していますが、複雑なことは何もありません。

ベストプラクティスは何ですか:

  • GUI クラス内のすべてに対して静的呼び出しを行う

  • GUI クラスのオブジェクトをインスタンス化し、そのオブジェクトのメソッドを呼び出します。「いつもの」方法。

私はJavaが初めてであることに注意してください。私が何かを誤解しているなら、喜んで学びたいと思います。

ありがとう!

4

6 に答える 6

1

" " のような単一の静的メソッドをgetInstanceどこかに置き、他の場所では通常の OOP を使用することを提案します。GUI 内ですべてを静的にすると、継承、ポリモーフィズム、またはその他の OOP の通常の機能が必要であることが判明した場合に、後で問題が発生する可能性があります。

于 2013-06-18T08:46:32.407 に答える
1

私は 2 番目のアプローチ、つまり GUI クラスのオブジェクトをインスタンス化します。これは、TDD アプローチに関して静的メソッドが適切ではないためです。私がよくないと言うとき、それは静的メソッドをモックするのが難しいことを意味します。

理想的には、メソッドが object の状態を処理するときは常にインスタンス メソッドを使用する必要があります。オブジェクトの状態に依存しないユーティリティ メソッドの場合は、静的メソッドを選択する必要があります。

しかし、TDD を取り上げると、カスケードされた静的メソッドが存在する場合、unitils のような一部のフレームワークや、静的メソッドのモックをサポートしない他のさまざまなフレームワークでは、junit を作成するのが難しい場合があります。静的メソッドに向かうため。

クラスレベルのメソッドとは別に、ポリモーフィズムのようなおっとモデルの他の機能を失います

于 2013-06-18T08:48:11.170 に答える
0

私は常にスレッドセーフなシングルトンを使用して、GUI のある部分から GUI の別の部分にイベントを委譲します。

于 2013-06-18T08:52:35.990 に答える
0

「通常の」方法で行うことを強くお勧めします。一般に、可能であれば静的メソッド (!) を使用することは良い方法ですが (util クラスへの外部化、テストの可能性の向上、再利用の容易さ)、GUI にはお勧めしません。GUI を静的にすると、シングルトンのように動作するため、ウィンドウ、フレームなどの複数のインスタンスを同時に作成する機会が得られます。

于 2013-06-18T08:42:25.873 に答える
0

必要に応じて GUI のオブジェクトをインスタンス化し、メッセージまたはアクションの交換にイベントを使用する必要があります。静的かどうか - それはあなた次第です。

于 2013-06-18T08:45:08.227 に答える