2

少し困っているので、よろしければ教えてください。

  1. クラスで新しい演算子を使用して、またはシングルトンを使用してオブジェクトを作成すると、それはコンポジションですか?
  2. ファクトリメソッドを呼び出すと、それも合成ですか?
4

2 に答える 2

3

コンポジションとアグリゲーションは、コンポーネントオブジェクトのインスタンス化方法ではなく、コンポーネントオブジェクトの存続期間に関係します。含まれているオブジェクトが破棄されるときにコンポーネントオブジェクトが破棄される場合、それはコンポジションです。コンポーネントオブジェクトが存続できる場合、それは集約です。

于 2012-09-05T23:29:25.023 に答える
2

「構成」という用語は、UMLとOOP内でわずかに異なる意味を持っています。

UMLでは、コンポジションはより強力な形式の集約であり、「owns-a」アソシエーションのようなものです。

GoFデザインパターンブックは、OOPでは継承よりも構成を優先する必要があることを示唆しています。この場合、構成とは、クラスから継承するのではなく、クラスを参照することによって機能が提供されることを意味します。

いくつかの用語が混同されているようです。ファクトリメソッドの作成とオブジェクト化または呼び出しは、それ自体が構成ではありません。

于 2012-09-05T23:29:40.280 に答える