ドメインモデルのDDDセッターのコンテキストでは、コードの臭いがあります。それらは実際にはドメインの一部ではないという単純な理由で避ける必要があります。ドメインエキスパートが理解できる名詞は含まれておらず、データへの変更は代わりに特定の方法を使用する必要があります。
例:
customer.StreetName = ...
customer.City = ...
そのための正しい方法はcustomer.ChangeAddress
、イベントなどを公開できる方法を用意することです。少なくとも私の理解から、これはすべて健全な理論であり、ドメインモデルのセッターが本当に望ましくない理由を完全に理解できます。
しかし、ドメインモデルにセッターがないと、これらのメソッドのテストはかなり難しくなります。
すべての引数を受け取る大きなお尻のコンストラクターがない場合、またはリフレクションマジックを実行しない場合にテストを構築できない場合、Customerインスタンスを取得してテストを実行するにはどうすればよいですか?私はバックエンドでNHibernateを使用しているので、NHibernateは、そもそもこれらのフィールドにデータを入力するために、すでにいくつかのリフレクションマジックを実行しています。
しかし、10個の引数を持つctorがあるのは本当に気分が悪いです..(そして同じことがファクトリメソッドにも当てはまります)。
これについて何かアドバイスはありますか?
ダニエルの挨拶