출처 : 디자인 패턴에 뛰어들기 - 알렉산더 슈베츠 도서D (Dependency Inversion Principle, 의존성 역전 원칙)상위 계층 클래스들은 하위 계층 클래스들에 직접 의존하지 않고, 둘 다 추상화에 의존해야 한다.추상화는 세부 정보에 의존해서는 안 되며, 세부 정보는 추상화에 의존해야 한다.소프트웨어 디자인 시 일반적인 클래스 분류하위 계층 클래스: 기본 작업(디스크 작업, 네트워크 통신, 데이터베이스 연결 등)을 구현한다.상위 계층 클래스: 복잡한 비즈니스 로직을 처리하며, 하위 계층 클래스들을 활용하여 동작한다.문제 상황 및 제안종종 하위 계층 클래스들을 먼저 디자인하고, 이후 상위 계층 클래스들을 디자인하기 시작한다.이는 시스템의 프로토타입을 개발할 때 흔한 상황이다.그러나 이런 ..