我很想看看人们在做 DDD 时如何处理决策树。例如,我们有一个要求,当持久化特定类型的新实例时,必须建立一些“默认”关联(相当多)。不过,用户可以在以后自由更改它们。因此,如果有人创建一个决策表,您如何在您的领域中表示它,或者您呢?这是在保险领域,例如,如果我选择一个选项,则所有相关的“默认”福利、选项等都会添加到保单中,但用户可以稍后自由更改。
问问题
115 次
2 回答
0
这并不特定于 DDD 本身,您通常会使用工厂来实现这一点,以创建您的默认聚合根。由于这种行为是特定于业务的并且可能会发生变化,因此将创建对象的责任外部化给工厂比让聚合根自己处理要好。
于 2010-03-04T18:59:58.513 回答
0
建议使用工厂。要实现默认值,请使用Martin Fowler 描述的“特殊情况模式”来获得真正的 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 {}
于 2011-12-23T11:15:44.063 回答