初めに
今日からRecursionで習ったOOP(オブジェクト指向プログラミング)を定着するために記事を書きます。
関連について
関連 - 二つ以上の項が関係していることを示す。
単純に「クラスAはクラスBを知っている」という関係性になる
2つの関連
- 単方向関連 - クラスAはクラスBを知っているが、クラスBはクラスAを知らない関係性
- 双方向関連 - 両方のクラスが互いに関連している
多重度について
多重度 - クラス同士の関係で、「幾つかのオブジェクトが関係している」を示す。
「1対1」、「1対多」、「多対多」これらの関係性のことである。
これらの関係性を学校の中で表します。
「1対1」の多重
- 一人の生徒が1クラス受けている
「1対多」の多重
- 一人の生徒が複数の授業を持っている
「多対多」の多重
* 複数の生徒が複数の授業を登録できる
関連と多重の組み合わせ
関連と多重度を組み合わせると、システムの中でどのクラスがどのような関係を持ち、どれくらいのオブジェクトがその関係に含まれるかを定義することができます。
例えば、「会社と従業員」の関係を考えると、多重度が「1対多」であれば、1つの会社に複数の従業員がいることを意味します。これに対して、「顧客と注文」の関係が「多対多」であれば、1人の顧客が複数の注文を行い、1つの注文に複数の顧客が関与する可能性があると定義できます。
結論
OOPにおける「関連」と「多重度」は、クラス同士の関係をより細かく表現するシステム設計方法です。
関連はクラス間のつながりを定義し、多重度はそのつながりに関わるオブジェクトの数を制約する役割を果たします。これらを正しく使いこなすことで、システム設計がより洗練され、開発効率が向上します。