2017-06-25 9 views
1

私は何時間もこれに固執しています。 大学のプロジェクトでSwingアプリケーションのUMLクラス図を作成する必要があります。私は選択されたオプションに応じていくつかのスクリーンのうちの1つを開くことができる1つのメインスクリーンを想像した。これらの画面には、アプリケーションロゴ、ログアウトボタンなどのいくつかの同一コンポーネントがあります。同一のコンポーネントを持つ複数の画面を持つ場合のスイングとUMLクラス図

今、私はJFrameのを継承することを推奨していない読んだので、私は再びそれらの他のクラスによって継承されますが、何とかそれも継承し、代わりにリストを持っていても大丈夫思われないのJFrameを継承したクラスでこれらのを入れて回避これらのコンポーネントはすべてのクラスの属性として使用されます。

だから、正しい方法は何ですか?

+0

あなたはその継承制限をどこで学びましたか? –

+1

ええと、インターネット上には、スタックオーバーフローが含まれています。いくつか名前を付けるだけです https://stackoverflow.com/questions/1143923/why-shouldnt-you-extend-jframe-and-other-components http://thebadprogrammer.com/2012/08/swing-composition- vs-inheritance.html –

+0

この記事の最後の段落はどうですか? –

答えて

0

通常、さまざまな画面がクラスと見なされます。具体的なデータを含む画面は、そのクラスのインスタンスです。

画面の任意の種類のサブ要素は明らかに別のクラスです。ここでも日付の例はインスタンスです。

スクリーンクラスには、異なるクラスのサブエレメントがあります。彼らは本当に属性であり、自然な論理を変えることは非常に不幸な考えです。

画面が同じ要素を持ち、内容のみが異なり、この事実が概念的である場合、それらが同じでなければならない場合、それらの画面は同じクラスに属します。彼らが偶然に似ているだけで、さらなる発展がそれを変えることができれば、彼らは異なるクラスに属するべきです。

継承も便利に使用できます。黄色のボタンと黄色のボタンがある場合、後者は前者の子孫になる可能性があります。ここではLiskovの原理は壊れないでしょう。基本原理がSOLIDに設定されていることを忘れないでください。継承を使用しないという原則はなく、純粋な方法で構成を使用する必要はありません。

関連する問題