我有兴趣了解人们在做DDD时如何处理决策树。例如,我们要求在持久化特定类型的新实例时,必须构建一些“默认”关联(很多)。用户可以在以后随意更改它们。因此,如果创建决策表,您如何在您的域中表示这个,或者您呢?这是在保险领域,因此,例如,如果我选择一个选项,那么所有相关的“默认”权益,选项等都会添加到策略中,但是用户随后可以随意更改它。
答案 0 :(得分:0)
这不是特定于DDD本身,您通常使用Factory来创建默认聚合根。由于此行为是特定于业务的,并且可能会发生变化,因此将对象创建的责任外部化到工厂比让聚合根本身处理这个更好。
答案 1 :(得分:0)
如建议使用工厂。要实现默认值,请使用Martin Fowler所描述的“special case pattern”来获得真实的OOP。
例如,如果您有一个带有Benefit和Options属性的Policy并且它们是类,则创建一个派生类,如下所示:
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 {}