クラス図について... その3
■分類と汎化
よく汎化のことを、ia-a関係というが注意しないといけないことがある。
それは以下のいずれもia-a関係であるということ。
・分類:ポチはボーダーコリーです。(ポチ is ボーダーコリー)
・汎化:ボーダーコリーは血統です。(ボーダーコリー is 血統)
サブタイプ化(汎化)をする際には、2つの上が混在したりしないように注意が必要となる。
■多重分類
一つのクラスに複数のサブセットタイプがつくこと。
この概念をそのまま実装することは難しい(やり方がない?)ため、概念レベルの設計で利用されることもあるけど、個人的にはわざわざ一般的でない書き方をしなくても...と思う
上の図では、Carクラスは、グレード(HighとLow)と駆動方式(4WD、FD、FR)の2つのサブクラスのセットに属している。
■関連クラス
関連クラスは関連に付くクラスであり、これにより関連に属性、操作を追加できる。
関連クラスのインスタンスは、関連両端のオブジェクトに対して1つしか存在できないという制約が付く。
このため、1つしか存在しない場合は関連クラス、1つ以上存在する場合は普通のクラスとしてモデル化する。