ドメイン駆動設計本読み直して基幹システム移行に役立てたいと考えています
しかしデータオブジェクトやドメインオブジェクトにメソッドを持たせるパターンの判断に慣れないです。
取引履歴を集計してFeeクラスを生成する場合、Feeクラスに自身を生成するメソッドを持たせたのですが、
AIに聞くとそれはAggregatorクラスで独立させるべきと言われてしまいましたが腹落ちしていません
自己分析すると「Feeクラスに書いておけば読むとき便利そう」という思いが強いのかも
DDD的にはどのあたりの知識があれば判断できるようになりますか
大事なのは高凝集・低結合と不整合な状態を作らないことです。
Fee生成のような計算は、
- 単一集約内で完結 → Feeや集約のメソッド/ファクトリ
- 複数集約や外部依存あり → ドメイン層の手続的メソッド(いわゆるドメインサービス)
これが実現できればどのような実装でも良いかと思います。
参考になる記事はこちら
https://little-hands.hatenablog.com/entry/2022/01/24/domain-object-design
https://little-hands.hatenablog.com/entry/2022/01/28/programming-principle