clean-architecture

10장. ISP : 인터페이스 분리 원칙

OPS 클래스

User1 : op1만을 사용

User2 : op2만을 사용

User3 : op3만을 사용

위 경우 OPS가 정적 타입 언어로 작성된 클래스라고 해보자. 이 경우 User1에서는 op2와 op3을 전혀 사용하지 않음에도 User1의 소스 코드는 이 두 메서드에 의존하게 된다.

OPS 클래스에서 op2의 소스 코드가 변경되면 User1도 다시 컴파일한 후 새로 배포해야 한다.

ISP와 아키텍처

ISP를 사용하는 근본적인 동기

결론

불필요한 짐을 실은 무언가에 의존하면 예상치도 못한 문제에 빠진다.