0

我很想看看人们在做 DDD 时如何处理决策树。例如,我们有一个要求,当持久化特定类型的新实例时,必须建立一些“默认”关联(相当多)。不过,用户可以在以后自由更改它们。因此,如果有人创建一个决策表,您如何在您的领域中表示它,或者您呢?这是在保险领域,例如,如果我选择一个选项,则所有相关的“默认”福利、选项等都会添加到保单中,但用户可以稍后自由更改。

4

2 回答 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 回答