has-aとは、データベース設計やオブジェクト指向プログラミングアーキテクチャにおいて、(複合型と呼ばれる)もう一つのオブジェクト(構造体の一部またはメンバ)に属するオブジェクトの関係[1]であり、所有者のルールに準じて振る舞うものである。
多数のhas-a関係は相まって所有階層を形成する。これは異なる種類の階層(派生型)を構成するis-a関係と対比される。あるオブジェクトとそれに従属するオブジェクトとの最も論理的な関係がhas-aであるのか、それともis-aであるのかは必ずしも明確に決められない。そのような判断上の混乱があるため、これらのメタ言語的用語が生まれたとも言える。日本語では集約やコンポジション集約関係を意味する。
脚注
関連項目