기능의 제공자는 책임을 가지게 된다. 책임은 잘 분리하면 전체 기능의 작동에 도움이 되며, 테스트도 쉬워진다.
기능을 누가 제공할 것인가?
기능의 제공자는 해당 기능에 대한 책임을 가진다. 분리된 하위 기능들을 잘 조합하면 전체 기능이 작동한다. 책임과 역할을 잘 분리하면 테스트하기도 쉬워진다.
책임을 분리하는 방법은 무엇인가?
책임을 분리하는 방법에는 다음과 같은 것들이 있다:
- 패턴 적용
- 간단한 웹: 컨트롤러, 서비스, DAO
- 복잡한 도메인: 엔티티, 벨류, 레포지토리, 도메인 서비스
- AOP: Aspect(공통 기능)
- GoF: 팩토리, 빌더, 전략, 템플릿 메서드, 프록시/데코레이터 등
- 계산 기능 분리
- 외부 연동 분리
- 네트워크, 메시징, 파일 등
- 조건별 분기는 추상화로 처리