2

必要に応じて、ドメイン オブジェクトがファクトリ メソッドまたはファクトリ レイヤを使用しても問題ありませんか?

私はクライアント コードに依存関係を作成し、存在する場所に注入するように試みてきましたが、これが常に正しいとは限りません。ここのこの質問では、たとえば、ドメイン オブジェクトの必須プロパティを確認する場所は? 、ユーザーは多くのペットを所有できます。ペットはユーザーなしでは存在できません。

私はペットを作成しようとしていて、それをユーザーのコレクションに追加しようとしましたが、問題はペットを作成するためにユーザーを提供する必要があることです (これはメソッドを持つ目的を無効にしますUser::addPet(ConcretePet))。

私がやりたいのはUser::addPet()、パラメーターの配列を受け取り、ファクトリまたはファクトリ メソッドを使用して Pet を作成するメソッドを用意することです。これは合理的ですか?

編集: 別のシナリオ

ドメイン モデルがファクトリにアクセスする別のシナリオを次に示します。ユーザーが所有するペットごとにライセンス オブジェクトが必要な場合、User::addPet(ConcretePet) メソッドでこれを作成するのは理にかなっていませんか? 確かにサービス レイヤーでライセンスを作成することもできますが、これはビジネス ロジックをドメインから切り離すことを意味します。

4

1 に答える 1