고수준 모듈은 저수준 구현에 의존해서는 안 된다
의존 관계를 맺을 때, 변화하기 쉬운 것 보단 변화하기 어려운 것에 의존해야 한다.
상위 계층이 하위 계층에 의존하는 전통적인 의존관계를 반전시킴으로써 상위 계층이 하위 계층의 구현으로부터 독립되게
Dependency Inversion Principle, 의존 역전 원칙
- 변화하기 쉬운 것 = 구체적인 것 (클래스, 서브 클래스 인스턴스)
- 변화하기 어려운 것 = 추상적인 것 (추상 클래스, 인터페이스)
즉, {인터페이스 or 추상클래스} {변수 명} = {서브 클래스 인스턴스} 꼴이 되어야 한다.
codeanddonuts/hacker-laws-kr
개발을 이야기할 때 흔히 논하는 법칙들이 있습니다. 이 저장소는 그 중 가장 보편적인 것들에 대한 참조와 개요입니다. 공유와 PR 제출 부탁드려요! ❗: 이 저장소는 여러 법칙, 원칙, 그리고 패턴에 관한 설명을 포함하고 있지만, 그 중 어떤 것도 지지 하고 있지 않습니다. 그것들을 적용하여야 할지에 말지에 대해서는 언제나 논의의 여지가 있으며, 또한 당신이 어떤 작업을 하느냐에 따라서도 크게 달라집니다.
https://github.com/codeanddonuts/hacker-laws-kr
Dependency Inversion vs. Dependency Injection
I've been a software engineer for a few years now, yet every now and then I like to return to the fundamentals. We all "know" that we should follow the SOLID principles by good ol' Uncle Bob, but common knowledge is not always common practice.
https://link.medium.com/nVIZGjndeqb


Seonglae Cho