imobiletmp / DDDReadingCircle

1 stars 1 forks source link

第 6 章 Factories #18

Open im-kashi opened 8 years ago

im-kashi commented 8 years ago

Aggregate は原則 Factory で組み立てる。

im-kashi commented 8 years ago

議論した事の断片

生成される具象クラスではなく、要求されるクラスに応じて抽象化される。

Factory は抽象型を返し、その具象についてクライアントは知るべきではない(依存すべきではない)という事。

生成物は不変条件を満たす事。 → オブジェクトの変遷を認めると不変条件が満たされないケースが出てくる。この場合は不変条件が満たされなくても良い?それともそもそもその不変条件が適切ではない?

生成されるドメインオブジェクト(Entity, Value Object 等)は、生成時・変遷時共に不変条件を満たしているべき。 不変条件が満たされないオブジェクトは、ドメインオブジェクトではない。

抽象型を引数に取る。

引数の具象型に依存させない為。

生成物が Aggregate なら Factory に置いた方が良い。

反対意見。Aggregate は一般的に変遷するが、不変性は常に強制されるべきなので、Factory ではなく Aggregate(生成物)側に不変条件を置く方が良い。

Value Object に Factory は必要?

Value Object はシンプルである事が求められているので、Factory は要らないよね。

他にあった議論を覚えていましたら、記載をお願いします。