別のオブジェクトの中に特定のオブジェクトを作成する理由はたくさんあります。いくつかの思考学校は、ある意味でプログラムを設計する理由を明示している。 「データ駆動型設計」または「ドメイン駆動型設計」。私はまだOOPの初心者ですが、1つのオブジェクトが別のオブジェクトに含まれるべき理由を理解することは、しばしば困難です。時には、私は素晴らしいと思われるオブジェクトで自分自身を見つけると、私は実現するところに到達する、 "今、私はこれはどこかに置く必要がありますか?私のハードディスク上にファイルを置くことにしたのは、これと似ているのでしょうか?特定のオブジェクトを構成する動機付け要因は?
私はこのための原則を導くカップル持っている:
- それのモデルであれば物理的な世界での関係を。
- コンポーザーにオブジェクトを構築するために必要なデータがある場合。
- 作成されたオブジェクトがコンポーザーを聴いている場合。
あなたはこの決定を下すときに何を探しますか?
この*オブジェクト*包含(コレクション)か*クラス定義*封じ込め(つまり、別のクラス内のクラスの定義)ですか?あなたは質問の途中で用語を切り替える。 –