特定のオブジェクトを別のオブジェクト内に構成する理由はたくさんあります。一部の学派は、プログラムを特定の方法で設計する理由を明示しています。たとえば、「データ駆動型設計」または「ドメイン駆動型設計」です。私はまだ OOP の初心者であり、あるオブジェクトが別のオブジェクトに含まれる理由を理解するのが難しいことがよくあります。ときどき、素晴らしいと思えるオブジェクトを見つけたときに、「よし、これをどこかに置かなければならないのだろうか?」と気付くことがあります。この背後にある理由は、ハードディスクにファイルを配置することを決定した場所と似ていますか?
これには、いくつかの指針があります。
- 物理的な世界での関係をモデル化する場合。
- コンポーザーがオブジェクトの構築に必要なデータを持っている場合。
- 構成されたオブジェクトがコンポーザーをリッスンする場合。
この決定を下すとき、あなたは何を求めますか?