Dependency Inversion Principle
[Dependency Injection](https://texonom.com/dependency-injection-371cce0b0e994efe9020f5e1a776ea75) 


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


> [codeanddonuts/hacker-laws-kr](https://github.com/codeanddonuts/hacker-laws-kr)





> [Dependency Inversion vs. Dependency Injection](https://link.medium.com/nVIZGjndeqb)
