集約を表したクラス図
class Color { } class Fruit { Color color; } class Basket { Fruit[] fruits; }
この図は、Color(色)、Fruit(フルーツ)、Basket(バスケット)という3つのクラスの
関係を表しています。
Basketクラスのfruitsフィールドは、Fruitクラスの配列になっており、
BasketクラスのインスタンスはFruitクラスのインスタンスを複数個持ちます。
また、FruitクラスのcolorフィールドはColorクラス型になっていて、
FruitクラスのインスタンスはColorクラスのインスタンスを1個持ちます。
平たくいえば、バスケットにはフルーツが何個入っていて、各フルーツにはそれぞれの
色がついているという関係です。
このような「持っている」関係を「集約」(aggregation)と呼びます。
インスタンスを持っていれば、個数に関わらずその関係は集約です。
配列を使っていても、java.util.Vectorクラスを使っていても、
どのような実装であっても、インスタンスを持っていればその関係は集約です。
白抜きのひし形がついた線は、集約を表します。
8746