10장. ISP : 인터페이스 분리 원칙
클라이언트가 자신이 사용하지 않는 불필요한 인터페이스에 의존하지 않아야 한다. 인터페이스의 단일 책임 원칙으로 생각해 볼 수 있다.
ISP와 아키텍처
아래와 같은 구조로 S → F, F → D 의존하고 있다. 이때 D에 결함이 생겼고 F와는 관계없는 기능이라고 하자. 하지만 D의 내부 변경이 일어나면 의존 관계로 인해 F를 재배포할 수도 있다. 더 심각한 문제는 S까지 영향을 준다는 사실이다.
- System (S) → Framework (F) → Database (D)
결론
불필요한 무언가에 의존하면 예상치 못한 문제에 빠진다.
11장. DIP : 의존성 역전 원칙
추상에 의존하며 구체에는 의존하지 않는다.
안정된 추상화
- 변동성이 큰 구체 클래스를 참조하지 않기.
- 변동성이 큰 구체 클래스로부터 파생하지 않기.
- 구체 함수를 오버라이드 하지 않기
- 구체적이며 변동성이 크다면 절대로 그 이름을 언급하지 않기.
결론
의존성은 더 추상적인 엔티티가 있는 쪽으로만 향한다.
'기술도서' 카테고리의 다른 글
클린 아키텍처 요약 - 4부. 컴포넌트 원칙 (0) | 2024.06.30 |
---|---|
클린 아키텍처 요약 - 3부. 설계원칙 (2) (3) | 2024.04.22 |
클린 아키텍처 요약 - 3부 설계원칙 (1) (0) | 2024.03.12 |
클린 아키텍처 요약 - 2부 벽돌부터 시작하기:프로그래밍 패러다임 (6) | 2024.02.26 |
클린 아키텍처 요약 - 1부 소개 (6) | 2024.02.19 |