반응형
Dependency Inversion Principle 의존관계 역전 원칙
정의 : 상위 모듈이 하위 모듈에 의존하는게 아니라 상위모듈과 하위모듈 모두 인터페이스(추상화)에 의존해야 한다.
의존관계 역전이란 말이 처음에는 와닿기 힘들다. 따라서 아래의 그림을 비교해서 보면 이해가 조금더 쉬울것 같다.
아래의 그림과 같이 상위모듈이 하위모듈에 의존하는 경우 하나의 하위모듈만 수정을 해도 상위모듈은 영향을 받게 되는 문제점이 있다.
따라서 인터페이스(추상화)를 통해 의존성을 상위모듈->하위모듈 에서 하위모듈->인터페이스 로 역전시켜준다.
이런 식으로 디자인을 변경하면 상위모듈에서 인터페이스를 가지고 있기 때문에 ownership도 가지게 된다.
왜냐하면 인터페이스란 "변하지 않는 것"의 다른말이기 때문에 하위모듈들이 인터페이스에 맞게 구현을 변경해야 하기 때문이다.
반응형
'객체지향프로그래밍' 카테고리의 다른 글
GRASP: General Principles in Assigning Responsibilities (0) | 2022.01.31 |
---|---|
[SOLID 원칙] 4. Interface Segregation 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 |