薄いサービス層パターン(Application Service)
定義
アプリケーションサービス(UseCaseクラス等)を「オーケストレーター」に徹させ、業務ロジックを持たせないパターン。 サービス層の責務は「どのドメインオブジェクトを呼ぶか、どんな順序で呼ぶか」のみ。
なぜ重要か
- サービス層が薄いことで、ユースケースの流れが読みやすいコードになる
- 業務ロジックのテストがドメインオブジェクト単体で完結する
- 「どこに業務ロジックを書くか」の判断基準が明確になる
適用場面
- サービスクラスに条件分岐・計算が増えてきたとき(ドメインオブジェクトへの移動のサイン)
- 同じ業務ロジックが複数のサービスに重複しているとき
関連概念
出典
現場で役立つシステム設計の原則(増田亨)第5章