我有興趣瞭解人們在處理DDD時如何處理決策樹。例如,我們有一個要求,即當持久化特定類型的新實例時,必須建立一些「默認」關聯(相當多)。但用戶可以隨時更改它們。所以如果你創建一個決策表,你如何在你的領域表示這個,或者你呢?這是在保險領域,所以例如,如果我選擇一個選項,那麼所有相關的「默認」優惠,選項等都會被添加到策略中,但用戶隨後可以隨意更改。如何在處理DDD時處理「默認值」
0
A
回答
0
這不是特定於DDD本身,您通常會使用Factory來實現此目的以創建默認聚合根。由於這種行爲是特定於業務的,可能會隨時發生變化,因此將創建對象的責任外化到工廠比讓集合根處理本身更好。
0
建議使用工廠。爲實現默認使用,Martin Fowler描述的「special case pattern」具有真正的OOP。
例如,如果您有效益和選項屬性策略,他們是類創建一個派生類是這樣的:
class Policy
{
Benefit Benefit {get;set;}
IList<Option> Options {get;set;}
//Factory
public static Policy CreateDefaultPolicy()
{
var retVal = new Policy();
retVal.Benefit = new DefaultBenefit();
retVal.Options =new List<Options>();
retVal.Options.Add(DefaultLifeOption);
retVal.Options.Add(DefaultCarOption);
retun retVal;
}
}
class Benefit {}
class DefaultBenefit: Benefit {}
class Option{}
class DefaultLifeOption {}
class DefaultCarOption {}
相關問題
- 1. 如何處理ArrayList的默認值
- 2. 如何處理lubridate的默認值ymd
- 3. xmlrpc apache - 如何默認處理程序
- 4. Tomcat默認會話處理
- 5. 默認異常處理
- 6. Rails如何在發佈後處理模型/默認值問題?
- 7. 如何在SQLIte中處理列默認值插入?
- 8. 你如何處理DDD和EF4
- 9. 使用DDD,如何實現批處理?
- 10. DDD和批處理(例如使用Spring批處理)
- 11. 編譯器如何處理符號表中的默認值
- 12. 如何妥善處理默認變量的值是不正確
- 13. 如何在創建對象時處理註釋並設置默認值
- 14. 在DDD中處理嵌套聚合
- 15. 處理時基值
- 16. 處理Android平臺默認樣式
- 17. firefox不觸發默認處理程序
- 18. 異常處理默認catch異常
- 19. 默認的.NET異常處理程序
- 20. 頁寬默認的異常處理
- 21. Python:什麼是SIGTERM的默認處理?
- 22. 執行默認信號處理程序
- 23. 調用UINavigationController的默認處理程序
- 24. 如何處理未處理在node.js中
- 25. 如何在處理輸入文件時處理前進(處理2行)
- 26. 在處理時進行流式處理
- 27. 如何處理完成時的負值
- 28. glmnet如何處理NA值?
- 29. 如何處理空值
- 30. 如何處理空值?