728x90
intro
SOLID 4, 5번째, 'I' ISP(인터페이스 분리 원칙), DIP(의존성 역전 원칙)를 알아보자.
ISP (인터페이스 분리 원칙)
class는 사용하지 않는 method나 properties에 의존해서는 안된다.
인터페이스를 분리해라.
A Class를 의존하는데, A Class가 해당 Class 내에서 사용하지 않는 것들을 들고 있다면?
이를 의존하는 class들은 필요치 않은 많은 것들까지 의존하게 된다.
이를 위배하면 어떻게 될까?
class 간의 의존 결합도가 강해진다. 당연히 변경하기가 까다롭겠지.
DIP (의존성 역전 원칙)
추상은 세부사항에 의존해서는 안된다. 세부사항이 추상에 의존해야 한다.
왜냐하면, 세부사항은 변경되기 쉽기 때문이다. 즉, 변경되기 쉬운 친구를 의존하지 않도록 하라는 것이다.
How to Do
- 변동성이 큰 구체 클래스를 참조하지 않는다.
- 변동성이 큰 구체 클래스로부터 파생하지 않는다.
- 구체 함수를 오버라이드 하지 않는다.
728x90
반응형
'컴퓨터 > Software Architecture' 카테고리의 다른 글
| [Clean Architecture] 컴포넌트 응집도: 3가지 원칙 (0) | 2023.02.26 |
|---|---|
| [Clean Architecture] SOLID 원칙, LSP(리스코프 치환 원칙) (0) | 2023.02.25 |
| [Clean Architecture] SOLID 원칙, OCP(Open-Closed 원칙) (0) | 2023.02.25 |
| [Clean Architecture] SOLID 원칙, SRP(단일 책임 원칙) (0) | 2023.02.25 |
| [Clean Architecture] SW Architecture와 프로그래밍 패러다임 (0) | 2023.02.05 |