고수준 모듈은 저수준 구현에 의존해서는 안 된다
의존 관계를 맺을 때, 변화하기 쉬운 것 보단 변화하기 어려운 것에 의존해야 한다.
상위 계층이 하위 계층에 의존하는 전통적인 의존관계를 반전시킴으로써 상위 계층이 하위 계층의 구현으로부터 독립되게
Dependency Inversion Principle, 의존 역전 원칙
- 변화하기 쉬운 것 = 구체적인 것 (클래스, 서브 클래스 인스턴스)
- 변화하기 어려운 것 = 추상적인 것 (추상 클래스, 인터페이스)
즉, {인터페이스 or 추상클래스} {변수 명} = {서브 클래스 인스턴스} 꼴이 되어야 한다.