オブジェクト指向プログラミングにおける関連性とその例


  1. 集約(Aggregation): 集約は、パートと全体の関係を表現するために使用されます。例えば、部品が製品の一部である場合、部品と製品の間に集約関係があります。以下はPythonのコード例です。

    class Product:
       def __init__(self, parts):
           self.parts = parts
    class Part:
       def __init__(self, name):
           self.name = name
    part1 = Part("Part 1")
    part2 = Part("Part 2")
    product = Product([part1, part2])
  2. コンポジション(Composition): コンポジションは、集約と同様にパートと全体の関係を表現しますが、パートが全体に強く依存していることを意味します。例えば、車とエンジンの間にはコンポジション関係があります。以下はJavaのコード例です。

  3. 関連性(Association): 関連性は、異なるクラスやオブジェクト間の一般的な関係を表現します。例えば、教師と生徒の間には関連性がありますが、強い依存関係はありません。以下はC#のコード例です。

    class Teacher {
       public string Name { get; set; }
    }
    class Student {
       public string Name { get; set; }
       public Teacher Teacher { get; set; }
    }

これらはオブジェクト指向プログラミングにおける関連性の一部の例です。関連性を適切に設計することで、クラスやオブジェクト間の依存関係を明確にし、柔軟性と再利用性を高めることができます。