로딩
요청 처리 중입니다...

일관성 있는 협력(feat: 오브젝트)

 일관성 있는 협력(feat: 오브젝트)

보통 service를 만들고 그 serviceImpl을 만드는 방식으로 의존성 역전을 한다. 하지만 해당 구현체에서 많은 조건 분기가 필요하다면 어떻게 해야할까?

예를들어 결재문서 승인 service가 있다고 했을때, serviceImpl을 구현한다. 이때 문서 종류가 다양할수도 있다.

이를테면 권한신청 문서가 있을 수도 있고, 계정 잠금해제 문서가 있을수도 있다. 만약 serviceImpl 클래스 하나만 쓴다면 다음과 같은 코드가 나올 것이다. if(권한신청 문서){ // 권한 신청 }else if(계정잠금해제 문서){ // 계정잠금해제 } 이러한 코드는 전혀 객체지향적이지 못하다.

개방 폐쇄원칙에 맞지 않는다. 새로운 요구사항이 들어오면 조건문을 계속 추가해야한다.

또 이러한 상태에서 조건이 추가된다면 2중 3중 4중 if문이 발생하게 될수도 있다. @Service public class ApprovalServiceImpl implements ApprovalService { @O...