2016-05-24 6 views
0

私はこの単純なアプリケーションを実装し、さまざまなソートアルゴリズムを実際に示しています。Java:描画を制御するWgetsのベストOOP動作

enter image description here

私は図面(グレーパネル)用の1つの(右)コントロールのクラスと別のものを持っているように私はOOPの設計について懸念していますが。問題は私がどのようにコミュニケーションをとるか分からない、例えば、これらの2つのクラスの間のボタンクリックアクションです。私はそれが汚れていると私は何をOOPは、描画クラスにパラメータとして必要なウィジェットを渡しているし、そこにアクションレスターを実装していません。それは正しいことではないようです。ここで何が最善の練習であるか教えてください。

答えて

0

(この質問は、とにかくあなたが唯一の主観的な答えを得ることができるので閉じますが、可能性があります...)

あなたDrawingクラスは、それに提供されたデータに基づいてバーを描画するための責任があります。画面右側のウィジェット(クラス?)について何も知る必要はありません。しかし、どのような種類のデータを扱うことができるかを知る必要があり、何とかそのデータを指定する必要があります。 OOPでは、インタフェースを使用してその契約を定義します。この場合、メソッドGetDataDrawingクラスで指定された構造体のデータを返す)を使用してDrawingDataProviderインターフェイスを持つことができます。

右のコントロールでは、具体的なGetDataメソッドを実装して、その要素がソートされているときに(おそらくアルゴリズムを実装するサードパーティのクラスによって)その要素をインターフェイスで指定された構造体に返します。物事をまとめるには、Drawingクラスを構築してこの実装を参照として渡します。