\r\n\r\n

アグリゲーションとjavaでの合成の違い

集約は、2つのオブジェクト間の「has-a」関係を記述する関連付けである。javaにおける集約と組み合わせの重要な違いは、内包するオブジェクトが所有するオブジェクトなしに存在できる場合は集約であり、内包するオブジェクトが所有するオブジェクトなしに存在できない場合は組み合わせである...ということです。

アグリゲーションとjavaでの合成の違い

集約は、2つのオブジェクト間の「has-a」関係を記述する関連付けである。Javaにおける集約と組み合わせの重要な違いは、含むオブジェクトが所有するオブジェクトなしで存在できる場合は集約であり、含むオブジェクトが所有するオブジェクトなしで存在できない場合は組み合わせであるということです。

オブジェクト指向プログラミング(OOP)は、ソフトウェア開発における主要なパラダイムである。オブジェクトを使ったソフトウェアのモデリングに使用される。オブジェクトはクラスを使って作成します。クラスは、プロパティとメソッドから構成されます。ソフトウェアには、複数のオブジェクトが存在します。各オブジェクトは、メッセージパッシングによって互いに協調する。2つのオブジェクトの関係をアソシエーションと呼びます。アグリゲーションとコンビネーションは、どちらもアソシエーションの2つのタイプです。has-a "関係は、他のオブジェクトを使用できるオブジェクトを説明します。集計や結合は、OOPをサポートする言語で実装することができます。2つのオブジェクトの間の関連は、含むオブジェクトが所有するオブジェクトなしで存在できる場合、集約である。含有するオブジェクトが所有するオブジェクトなしでは存在できない場合、これら2つのオブジェクトの関連は結合となる。

カタログ

1. 概要と主な相違点 2. Javaにおける集約とは 3. Javaにおける合成とは 4. Javaにおける集約と合成の類似点 5. 横並びの比較 - 表形式でのJavaにおける集約と合成 6. まとめ

javaでの集計は何ですか?

アグリゲーションとは、関連付けのことです。クラスが実体参照を持つ場合、それをアグリゲーションと呼びます。集計は、has-a関係を表す。学生オブジェクトは、student_id、name、addressなどの属性を持つことができる。このオブジェクトは、都市、州、国などの独自の情報を持つ、住所と呼ばれる別のオブジェクトを持つことができます。この場合、学生はエンティティの参照先アドレスを持っています。これは、「持っている」関係です。

聚合(aggregation)和java中的合成(composition in java)的区别

図01:マーキングのレベル

聚合(aggregation)和java中的合成(composition in java)的区别

図02:アグリゲーションを記述したメインプログラム

上記の手順により、クラスの成績は、数学、英語、理科の成績の3つの属性から構成される。この生徒はスコアオブジェクトを持っています。数学、英語、理科の成績など、それぞれの特徴があります。mainメソッドでは、Marksオブジェクトを生成し、Marksの値を代入しています。生徒オブジェクトs1は、マークオブジェクトm1を使用できる。 したがって、生徒とマークの間には「イエス-イエス」の関係が存在する。したがって、コレクションである。

javaでの合成は何ですか?

コンポジションはアソシエーションです。これは、所有権を意味する特定の集計形式です。クラスAとクラスBという2つのクラスがあるとします。クラスBのオブジェクトが破壊されると、そのオブジェクトは存在しなくなりますから、合成となります。1冊の本は多くのページで構成されています。本が破棄されると、これらのページも破棄されます。ページオブジェクトは、ブックオブジェクトがなければ存在できない。以下の手順をご覧ください。

聚合(aggregation)和java中的合成(composition in java)的区别

図03:教室

聚合(aggregation)和java中的合成(composition in java)的区别

図04:学校の授業風景

聚合(aggregation)和java中的合成(composition in java)的区别

図05:構成されたメインプログラムの説明

上記のプログラムによると、教室はnameとnumOfStudentsの2つの属性を持つ。schoolは教室のアイテムの集合体である。メインメソッドでは、2つの教室オブジェクトが作成されます。それらは「教室」に追加されます。これらの「教室」は、学校オブジェクトに渡される。最後に、教室の名前と生徒の数が、コレクションを繰り返しながら印刷される。学校オブジェクトが破壊された場合、教室オブジェクトも破壊されます。これは作曲の一例です。また、「has-a」関係も含まれ、これも所有権を意味する。

Javaにおける集約と合成の関係は何ですか?

  • アグリゲーションとコンビネーションは、アグリゲーションの特殊なタイプであり、コンビネーションはアグリゲーションのサブセットである。

アグリゲーションとjavaでの合成の違い

Javaにおける集計と結合
集計は、関係を「持っている」2つのオブジェクトの関連を記述する。 結合とは、所有権を意味する、より具体的な集合体の一種です。
使用方法
オブジェクトが他のオブジェクトを使用する場合は、集約を使用する。 オブジェクトが他のオブジェクトを所有する場合は、複合を使用します。
対象物への影響
アグリゲーションでは、所有するオブジェクトの破壊は、含まれるオブジェクトに影響を与えない。 コンポジットでは、所属するオブジェクトを破壊すると、それを含むオブジェクトに影響を及ぼします。

概要 - アグリゲーション vs. javaでの合成

集計と結合は、OOPにおける2つの概念である。has-a "関係は、他のオブジェクトを使用できるオブジェクトを説明します。アグリゲーションとは、2つのオブジェクトの間に「has-a」関係を記述する関連付けのことである。Javaにおける集約と結合の違いは、含まれるオブジェクトが所有するオブジェクトなしで存在できる場合は集約であり、含まれるオブジェクトが所有するオブジェクトなしで存在できない場合は結合であることである。

引用
  • 2020-10-24 01:38 に公開
  • 閲覧 ( 25 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ