在域驅動設計中,使用工廠在您的域圖層中創建域對象似乎是一種很好的做法(與使用直接構造函數或IOC)。在模型視圖中使用演示者中的工廠模型視圖演示者和域驅動設計項目
但是如何在演示者層中使用域對象工廠呢?例如,假設我是通過從演示者獲得的用戶輸入創建一個域對象。
下面是一個示例,假設我有一個配置域對象,它具有許多小數設置。
公共類配置:PersistantObject {
public decimal temperature {get;set;}
...(times 20)
public decimal gravity {get;set;}
}
爲了在域中層創建該對象,而不是演示層,我將不得不通過每個這些十進制值的作爲功能參數。創建一個笨拙的函數定義和調用。
ie ConfigurationService.CreateConfiguration(temperature,...(x20),gravity);
或許更好的解決方案是在演示者層創建Configuration對象,並直接從用戶輸入中分配配置對象的所有值,從而跳過冗長的函數調用。
Configuration config = ConfigurationFactory.CreateNewConfiguration();
config.temperature = temperature;
..(x20).. = ...;
config.gravity = gravity;
ConfigurationService.SaveNewConfiguration(config);
但我想知道這種方法是錯誤的,爲什麼? 如果這兩種方法都是錯誤的,那麼從用戶輸入創建冗長對象的最佳方法是什麼?爲什麼?
謝謝!