DDD
ドメイン駆動設計

ちょっとずつ読むドメイン駆動設計 第三部 より深い洞察へ向かうリファクタリング 第十章 しなやかな設計6 独立したクラス

これまでの第十章

独立したクラス

この独立したクラスと次の閉じた操作は値オブジェクトのパターン

依存関係が増えれば、そのクラスを理解するのに、関連を辿る必要が出てきて、難しくなる。

依存関係を極限まで減らすことで、理解しやすいクラスを作る。それは値オブジェクトなら可能ですね。
そのクラスは数個のプリミティブや基本ライブラリで表現されたクラスになるでしょう。

もちろん、プリミティブだけの大きなクラスを作るということではないというのは言うまでもないですね。適切な値オブジェクトを構成していくことが独立したクラスを作る近道になるのではないでしょうか。

モジュール・集約に閉じ込める

どうしても依存関係が減らせない場合は、同じモジュール内に閉じ込めること。モジュールの外と依存関係がある場合に比べて複雑さは低減されます。

ただ、その依存関係は本当に本質的なのかどうかは考える事です。依存関係はなければないほど理解がし易いクラスになっていきます。

目標はすべての依存関係を取り除くことではない。本質的でない依存関係をすべて取り除くことなのだ。(第三部 第十章より)