\r\n\r\n

アグリゲーションと組成の違い

オブジェクト指向プログラミング(Oop)は、ソフトウェア開発における一般的なパラダイムである。オブジェクトはクラスのインスタンスである。オブジェクトを一度に作成することはできません。オブジェクトを作成するための設計図や説明書があるはずです。この青写真をクラスと呼びます。クラスはプロパティとメソッドを含む。オブジェクトはクラスを使って作成します。クラスとオブジェクトは、現実世界における間取り図と家に似ています。正しいプランなくして、家を建てることはできない。同じように、クラスはオブジェクトを作成するために使用されます。オブジェクトは他のオブジェクトと協働する。2つ以上のオブジェクト間の関係を表すリンクを「アソシエーション」と呼ぶ。集計と組み合わせは、関連付けの一種です。クラス間の関係を記述するものである。これは...

主な差異 - 集計と結合

オブジェクト指向プログラミング(OOP)は、ソフトウェア開発における一般的なパラダイムである。オブジェクトはクラスのインスタンスである。オブジェクトを一度に作成することはできません。オブジェクトを作成するための設計図や説明書があるはずです。この青写真をクラスと呼びます。クラスはプロパティとメソッドを含む。オブジェクトはクラスを使って作成します。クラスとオブジェクトは、現実世界における間取り図と家に似ています。正しいプランなくして、家を建てることはできない。同じように、クラスはオブジェクトを作成するために使用されます。オブジェクトは他のオブジェクトと協働する。2つ以上のオブジェクト間の関係を表すリンクを「アソシエーション」と呼ぶ。集計と組み合わせは、関連付けの一種です。クラス間の関係を記述するものである。この記事では、アグリゲーションとコンビネーションの違いについて説明します。集約と構成の主な違いは、集約が2つのオブジェクト間の「has a」の関係を記述する関連付けであるのに対し、構成は所有権を暗示する、より特殊な集約のタイプであることである。

カタログ

1. 概要と主な違い 2. 重合とは 3. 組成とは 4. 重合と合成の類似点 5. 並置と比較 - 表形式でまとめ、結合する 6. まとめ

アグリゲーションは何ですか?

2つのオブジェクトの関係は、UML(Unified Modelling Language)で線を引くことで表現される。UMLは、システムを視覚的に表現するのに役立つ。従来のプログラミング言語とは異なる。また、アソシエーションはオブジェクトの多重性を定義する。1対1、1対多、多対多がある。クラスaの1つのオブジェクトがクラスBの1つのオブジェクトと関連している場合、これは一対一の関係である。例として、著者が本を書くことが挙げられます。この例では、ある著者が本を書いている。

クラスAのオブジェクトがクラスBの多くのオブジェクトと関連している場合、それは一対多の関係である。例えば、一つの部門に多くの従業員がいることがあります。クラスAのオブジェクトがクラスBの多くのオブジェクトと関連付けられ、クラスBのオブジェクトがクラスAの多くのオブジェクトと関連付けられる場合、それは多対多の関連付けである。例えば、1人の社員が複数のプロジェクトに携わることができ、1つのプロジェクトに複数の社員がいる場合です。

アグリゲーションは、オブジェクト間の関係をさらに記述するアソシエーションの一種である。アグリゲーションは、関係を「持つ」ことを表現しています。例えば、学生が学生証を「持っている」、自動車が「エンジン」を持っている、といった関係性を表現することができます。また、この関係を利用して、数を拡張することも可能です。例えば、銀行には「多くの」銀行口座があり、クラスには「多くの」生徒がいる。このことは、次のような例で説明できる。

聚合(aggregation)和作文(composition)的区别

図01:アグリゲーション

上記の例によると、教室は1人以上の生徒で構成されています。多重度は、対象の数を示すのにも使われる。人以上の生徒がいる教室を表現しています。UMLでは菱形表記が集約を表す。生徒オブジェクトは、クラスオブジェクトに依存しません。クラスオブジェクトが破壊されても、生徒オブジェクトには影響しません。それらのオブジェクトはまだ存在しています。

エッセイ(作文)は何ですか?

合成とは、所有を表すアグリゲーションのより具体的な形で、次のような例で説明することができます。

聚合(aggregation)和作文(composition)的区别

図02:構成

前述のように、ブックオブジェクトはページオブジェクトとページのいずれかから構成される。多重度は、対象の数を示すのにも使われる。人以上の生徒がいる教室を表現しています。ハイライトされた菱形の記号は、UMLにおける集合体を示しています。本は1ページ以上あるので、集合体であるが、より具体的である。bookオブジェクトが破壊された場合、pageオブジェクトも破壊される。bookオブジェクトがなければ、pageオブジェクトは存在できない。このように、組合せは所有権を含むより具体的な集合体である。

アグリゲーションと組成の共通点

  • どちらもオブジェクト指向プログラミングで使用される。
  • いずれもUML(Unified Modelling Language)を用いて、システムを直感的に理解できるようにしたものです。

アグリゲーションと組成の違い

重合と合成
"アグリゲーションとは、2つのオブジェクトの関連付け "である。 組合せは、所有権を表す最も具体的な集合体である。
UML表記法
集合体は菱形で表現される。 組成はハイライトされた菱形で表示されます。
機能
アグリゲーションでは、所有するオブジェクトが破壊されても、それを含むオブジェクトには影響がない。 所有するオブジェクトは、それが破壊された場合、その構成に影響を与える。

概要 - アグリゲーション vs. 組成

オブジェクト指向プログラミングは、ソフトウェア開発における主要なパラダイムである。OOPでは、システムはオブジェクトを使ってモデル化されます。これらのオブジェクトは単独で存在するわけではありません。オブジェクトは他のオブジェクトと協働する。オブジェクト間の関係をアソシエーションと呼びます。集計と組み合わせは、関連付けの一種です。集約と構成の違いは、集約が2つのオブジェクト間の「has a」の関係を記述する関連付けであるのに対し、構成は所有権を意味する集約のより具体的なタイプであることである。集約と合成の両方は、システムの挙動を理解するのに有効である。

集計された対構成比のPDF版をダウンロードする

この記事のPDF版をダウンロードし、引用の指示に従ってオフラインで使用することができます。 PDF版「凝集と合成の違い」のダウンロードはこちら

引用
  • 2020-10-19 20:29 に公開
  • 閲覧 ( 23 )
  • 分類:IT

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

匿名者
匿名者

0 件の投稿

作家リスト

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

おすすめ