ドメインモデル貧血症
https://gyazo.com/bce87e2a6b0e759ed8025dee7f0fb7ec
血の希求
ドメインオブジェクトに本来記述されるべき知識やふるまいが、ドメインサービスやアプリケーションサービスに記述され、語るべきことを何も語っていないドメインオブジェクトの状態をドメインモデル貧血症といいます。これはオブジェクト指向設計のデータとふるまいをまとめるという基本的な戦略の真逆をいくものです。
成瀬 允宣. ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本 (Japanese Edition) (Kindle の位置No.1495-1498). Kindle 版.
サービスが肥大化したら怪しむこと
エンティティを getter/setter だらけにして、サービス側でエンティティに関わるドメイン処理をやってしまっている状態
ドメインモデル貧血症の基本的な症状は、一見、それが本物のドメインモデルに見えるという点です。オブジェクトがいくつかあり、それらはドメイン空間にある名詞から名前をつけられています。それから、オブジェクト同士がしっかりとしたリレーションで結びついており、本物のドメインモデルと同じような構造を持っているのです。 ただし、オブジェクトの振る舞いを見れば違いが分かります。それらのオブジェクトにはわずかな振る舞いしかない、ということに気づくと思います。 ドメインのロジックをドメインオブジェクトの中に入れないという設計ルールに従っているのでしょう。その代わり、すべてのドメインロジックを含むサービスオブジェクト群が存在しているのです。 こういったサービスはドメインモデルの上位に居座り、データのためだけにドメインモデルを使うのです。
ドメインオブジェクトを育てるのを怠ると、このアンチパターンに陥る
ただの手続き指向になってしまう