【読書メモ】実践ドメイン駆動設計 ~第7章~ 「サービス」
前回 【読書メモ】実践ドメイン駆動設計 ~第6章~ 「値オブジェクト」
サービスとは
第7章で扱う「サービス」とは「ドメインサービス」のことを指す。
- ドメインサービス
ドメインに特化したタスクを処理するステートレスな操作。集約や値オブジェクトの外に実装したほうがいいロジックなど。
- アプリケーションサービス
ドメインモデルのクライアント。トランザクションやセキュリティなどの調整的な処理など。
いつドメインサービスを使うのか?
避けるべきこと
- ドメインサービスの多用
ただし、なんでもかんでもサービスとしてモデリングしてはいけない。
サービスを使いすぎると、ドメインモデル貧血症に陥るため。
- ミニレイヤの実装
「ドメインサービス層」というミニレイヤを作ることはアンチパターン。
レイヤが肥大化する傾向にあるため。
- アプリケーションサービス層での実装
アプリケーションサービスは、ドメイン外部の関心事を実装する場所。 ドメイン内部のビジネスロジックが、利用側(アプリケーションサービス)に流出させないため。
参考
「実践ドメイン駆動設計」から学ぶDDDの実装入門 (WINGSプロジェクト 青木淳夫 著)
以上