ドメイン駆動設計では、ファクトリを使用してドメイン レイヤーにドメイン オブジェクトを作成することをお勧めします (直接コンストラクターまたは IoC を使用するのではなく)。
しかし、プレゼンター レイヤーでドメイン オブジェクト ファクトリを使用する場合はどうでしょうか。たとえば、プレゼンターから取得したユーザー入力からドメイン オブジェクトを作成していたとします。
以下に例を示します。10 進数の設定を持つ構成ドメイン オブジェクトがあるとします。
パブリック クラスの構成: PersistantObject {
public decimal temperature {get;set;}
...(times 20)
public decimal gravity {get;set;}
}
このオブジェクトをプレゼンター レイヤーではなくドメイン レイヤーで作成するには、これらの各 10 進数値を関数パラメーターとして渡す必要があります。扱いにくい関数定義と呼び出しを作成します。
つまり、ConfigurationService.CreateConfiguration(温度、...(x20)、重力);
おそらくより良い解決策は、構成オブジェクトをプレゼンター レイヤーに作成し、構成オブジェクトのすべての値をユーザー入力から直接割り当てて、長い関数呼び出しをスキップすることです。
構成 config = ConfigurationFactory.CreateNewConfiguration();
config.temperature = 温度;
..(x20).. = ...;
config.gravity = 重力;
ConfigurationService.SaveNewConfiguration(config);
しかし、このアプローチが間違っているかどうか疑問に思っています。なぜですか? これらのアプローチの両方が間違っている場合、ユーザー入力から長いオブジェクトを作成するための最良のアプローチは何ですか?またその理由は何ですか?
ありがとう!