集約を表したクラス図

集約を表したクラス図


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