2項関連


分類子の関係

オブジェクト指向において、クラスは密接に他のクラスと関係しあいます
こうした型の関連、概念的なつながりを図で書く必要があるでしょう

関連は、分類子を接続する線として記述します
このうち、2つの分類子シンボルを接続する線を 2 項関連と呼びます
関連する分類子は、実線で結びます
線は、直行線分、斜線、曲線など、自由な形で記述してかまいません

関連には、関連名を指定することができます
関連名は、経路の近く中央付近に記述しなければなりません
このとき、線の終端に記述しないように注意してください
関連端は役割名と呼ばれる、異なるテキストを記述する領域なのです

役割名は、オプションとして小さな黒ベタの三角形を持つことができます
三角形は、どの方向に名前がかかるのかを表すためのものですが
意味論的重要性を持たないと定義されているため、記述的な問題と考えてください



この図は、ご主人様分類子と猫耳メイド娘分類子が2項関連で結ばれています
関連名として「調教」が挙げられていますが、ご主人様は調教されないので
記述的な概念として猫耳メイド娘分類子に黒ベタ三角形が向けられています


関連端

関連の実践の開始端と終端のことを関連端と呼びます
分類子に接続する関連の端点を表します
関連において重要な情報のほとんどは、この関連端に記述しなければなりません

まず、関連で重要なのは多重度です
コンテナは複数のコンポーネントを保有しますが
コンポーネントは常にひとつのコンテナを持つでしょう
これは、1 対多の関係であることが明白です

同様に、ご主人様は常に一人ですが猫耳メイド娘は複数でも大いに結構です
しかし、あまりにも多すぎると体が持たないかもしれませんから
ここは断腸の思いで1〜5人までと定めることにしましょう
だとすれば、ご主人様は常に 1、猫耳メイド娘は 1..5 という多重度を指定します



このように、関連の多重度を指定することができるのです

また、それぞれの関連する分類子が関係上どのような役割を果たすかを記述できます
分類子の役割のことをロールと呼び、関連端にロール名を記述できます
関連名などのテキストを関連端に書いてはいけない理由は、ロール名と混同するからです



この図は、分類子のロール名を記述しています
ご主人様は雇用者であり、猫耳メイド娘はご奉仕を役割としています

因みに、関連は次のように重複してもかまいません



互いに影響を与え合っている場合は、このように記述すると良いでしょう
また、ひとつの分類子が複数の分類子と関連を持ち
木構造のような形になってもかまいません

さらに、分類子が自分自身に関連する場合があります
この場合、記法としては関連端は区別できるように記述する必要があります
自分自身に再帰的に関連するということは、自分から自分へ実線をつなぐことになります

このような関連を持つクラスは、比較的大規模なシステムを抽象化した分類子や
何らかの挙動や現象を抽象化した分類子が、内部に複雑なインスタンス関係を持つ場合
内部の複雑な関連を表すために用いたりすることができるでしょう



例えば、オーケストラは指揮者が団員に関連します
そして、指揮者は常に一人であり、複数の団員に演奏命令を行う関連を持つのです



前のページへ戻る次のページへ