반응형
Interface Segregation Principle 인터페이스 분리 원칙
정의 : 클라이언트는 자신이 사용하지 않는 메소드에 의존하지 않아야 한다. 즉, 인터페이스를 구체적으로 잘게 짤라서 만들어야 한다.
아래와 같이 디자인 된 시스템을 보면 ISP원칙을 적용하면 좋을것 같다.
InfoApplication은 getName(), getID()메소드만 사용하고 나머지는 필요 없으며
CareereApplication은 getJobLevel()메소드만 사용한다.
이러한 상황에서 getAge()라는 메소드를 추가하게 되면 Employee클래스에 연관된 모든 클래스가 영향을 받는다.
따라서 아래와 같이 인터페이스를 분리해보자
EmployeeInfo와 EmplyeeCareere로 인터페이스를 분리함으로써 서로간의 디펜던시를 줄일 수 있게되었다.
하지만 무분별하게 인터페이스를 분리한다면 오히려 디자인의 복잡도를 높이는 상황이 발생할 수 있기 때문에 적절하게 균형을 맞춰야 할 것 같다.
반응형
'객체지향프로그래밍' 카테고리의 다른 글
GRASP: General Principles in Assigning Responsibilities (0) | 2022.01.31 |
---|---|
[SOLID 원칙] 5. Dependency Inversion Principle 의존관계 역전 원칙 (0) | 2022.01.16 |
[SOLID 원칙] 3. Liskov Substitution Principle 리스코프 치환 원칙 (0) | 2022.01.09 |
[SOLID 원칙] 2. Open Closed Principle 개방-폐쇄 원칙 (0) | 2022.01.09 |
[SOLID 원칙] 1. Single Responsibility Principle 단일 책임 원칙 (0) | 2022.01.09 |