クラス間の関係 - 例えばJavaを使用

達成されたJavaクラス、依存、関連、集約、組成、継承(一般)との間の6の一般的な関係が存在します。

カップリング:依存性<関連<重合<組成物<継承<達成

依存関係

簡単に言えば、それは、使用に依存しています。クラスはクラスBを使用され、この関係は一時的なチャンスを持っています。例えば、パラメータなどの属性のクラスの使用、方法、または方法には、戻り値として、または方法で出力されます。[依存先-A]

Personクラス{公共
のpublic static無効スピーク(){
System.out.printlnは( "話す");
}
}
クラスの学生{
//使用パラメータの依存関係の実施例発生し
ます。public void speak1(人人){
person.speakを() ;
}
//ローカル変数依存関係が発生し
ます。public void speak2を(){
人の人が新しい新しい人数(=);
person.speak();
}
//静的変数の依存関係が発生し
ます。public void speak3(){
person.speakを() ;
}
}

 

関連性

クラスは、長期的には偶然ではない、強い依存性であるクラスBを、使用します。コード内のパフォーマンスは以下のとおりです。B.を含むAクラスのメンバ変数のクラス 協会は双方向であり、それは一方通行することができます。Javaでは、一方向関連は次の通り:クラスA、クラスBの用途を、クラスB型の前記メンバ変数として。双方向関連は次のメンバー変数として使用されたクラスA、クラスBと、クラスB、クラスAもメンバ変数として使用しました。[協会]

 

電話{クラス公開
公共ボイドコール(){
System.out.printlnは(「呼び出し」);
}
}
クラスユーザー{
//実施形態メンバに関連付けられた変数を使用して、
電話の電話=新しい新しい電話();
公共ボイド使用(){
電話.call();
}
}

 

集約関係

関係の特別なケースは、関係が強く、関係、すなわち、HAS-関係の不可欠な部分です。全体と部分が取り外し可能である間に、彼らは自分自身のライフサイクルを持っています。そして、の関係と異なる組み合わせの間の関係の不可欠な部分である:全体の部品点数を含むが、ここでは同じ部分です。それは間のクラス(またはエンティティ)との間に一方向の関係です。たとえば:財布とお金財布はお金、財布が含まれていないお金になります。これは、自然な方法の関係です。

 

他のクラスの存在下でのクラス(またはエンティティ)が重合しそれの存在または非存在に影響を与えない:である;重合関係にある2種類(またはエンティティ)が互いに影響を及ぼさない、単独で存在してもよいです。JAVAにおいては、重合の間の関係は、一般に、可変部材を達成するために使用され、コードの重合性能の両方の関連付けは、単に意味論が異なる、同じです。

 

クラスウォレット{公共
マネーマネー;
クラス割当方法のメンバ変数として//重合関係セット一般的な使用
公共ボイドsetCounts(マネーマネー){
This.money =マネー;
}
}

 

関係の組み合わせ

 

限られた重合体の組み合わせは、ある部分の関係を表す2つのエンティティ(またはクラス)がお互いに大きく依存していることを特徴とします。たとえば、同じように:人間の心と人間の心が生き残るために必要があり、人間の心も生き残るために必要があります。

 

つまり、お互いに依存して、ときに、クラス(エンティティ)と彼らの生活は、それが組成物である、(人が死亡した場合、その後、他が死んでいる)と同じです。たとえば:何の人間の心がなければ、それは意味がありません。

Personクラス{公共
脳脳、
心臓ハート;

一般コンストラクタに割り当てられた部材//可変組成の関係
公開者(脳、脳、心臓ハート){
This.brain =脳;
This.heart =ハート;
}

公共ボイド(){考える
のSystem.out.println(()+ "反射"をbrain.toString);
}
公共ボイドビート(){
System.out.printlnは(heart.toString()+ "ジッタ");
}
}

コンビネーション依存の違い:

1.重合が弱い関係である、組成物が強力な関係です。

2.重合有する関係、一方向の関係を表す部分の関係の組合せを表しています。

二つのタイプ(またはエンティティ)3.重合は単独で存在してもよく、それらはお互いに影響を与えない、関連する一つのアソシエーションの一つが強くない、独立した依存することができます。対照的に、2つのエンティティ(またはカテゴリ)の組み合わせは、それらの間の相互作用があり、お互いに非常に依存します。

重合関係二つのクラス(またはエンティティ)4.は、ライフサイクルを同期されていないが、複合関係ライフサイクル内の2つのクラス(またはエンティティ)が同期しています。

 

継承(汎化)関係

すなわち、一般的な関係を示す特定するための関係、「 - 」です。これは、親子関係クラスとクラス(またはインタフェースとのインタフェース)を表しています。一般的に、クラスAがクラスBからクラスB、クラスAを拡張した場合にのみメソッドを継承するだけでなく、いくつかの追加機能を備えていない含ま。Javaでは、キーワードによって表される、継承を拡張します

実現関係

クラスとインタフェースとの間の関係、クラス表現実装の1つまたは複数のインターフェイス。インターフェイスの動作の明確に定義されたセットは、実装クラスは、インターフェイスの具体的な動作を実行します。使用実装はJavaで表明しました。

参考リンク

https://blog.csdn.net/bupa900318/article/details/80650886

https://cloud.tencent.com/developer/article/1478673

おすすめ

転載: www.cnblogs.com/hhd-shuai/p/12497646.html