我有兴趣了解人们在处理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. 如何处理空值?