0

DDDを実行するときに、人々が決定木をどのように処理するかを知りたいと思います。たとえば、特定のタイプの新しいインスタンスを永続化する場合、いくつかの「デフォルト」の関連付けを構築する必要があるという要件があります(かなりの数)。ただし、ユーザーは後で自由に変更できます。では、デシジョンテーブルを作成する場合、ドメインでこれをどのように表現しますか?これは保険ドメインにあるため、たとえば、1つのオプションを選択すると、関連するすべての「デフォルト」の特典、オプションなどがポリシーに追加されますが、ユーザーは後で自由に変更できます。

4

2 に答える 2

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 に答える
0

これは DDD 自体に固有のものではありません。通常はFactoryを使用してこれを実装し、デフォルトの集約ルートを作成します。この動作はビジネスに固有であり、おそらく変更される可能性があるため、オブジェクト作成の責任をファクトリに外部化することは、集約ルートにこれ自体を処理させるよりも優れています。

于 2010-03-04T18:59:58.513 に答える