- 응용 서비스 구현시 인터페이스의 필요성에 대해 종종 논의됨.
public interface ChangePasswordService { public void changePassword(String memberId, String curPw, String newPw); } public class ChangePasswordServiceImpl implements ChangePasswordService { // 구현 ... }
- 인터페이스가 필요한 경우?
- 여러 구현체가 존재하는 경우
- 런타임에 구현 객체를 바꿀 필요가 있을 경우
- 단일 구현체다?
- 하나의 응용 서비스에 대해 한 가지의 구현만 존재하기에, 인터페이스로 인한 구조 복잡성이 쓸 데 없이 증가한다.
만약 TDD 의 경우
- TDD 는 실제 클래스의 구현 전에 인터페이스의 작성을 미리 다 해놓고 개발을 진행해야하기에, 인터페이스가 필요함
- 하지만, TDD가 아닌 경우 Mockito같은 도구로 클래스에 대한 테스트 객체를 모킹이 가능하기에, 인터페이스가 무조건적으로 필요하지는 않다.
Uploaded by N2T
'도메인주도개발' 카테고리의 다른 글
[DDD] 도메인 로직을 넣지 않기! (0) | 2024.01.19 |
---|---|
[DDD] 서비스 레이어에서 공통로직의 분리 방법 (0) | 2024.01.19 |
[DDD] 표현 영역과 응용 영역 (0) | 2024.01.19 |
표현 영역과 응용 영역 (0) | 2024.01.07 |
밸류를 이용한 ID의 매핑 (0) | 2024.01.05 |