■ 11장 DIP: 의존성 역전 원칙 Dependency Inversion Principle 유연성이 극대화된 시스템 = 소스코드 의존성이 추상 abstraction 에 의존하며 구체 concretion 에는 의존하지 않는 시스템이다. 의존을 피해야 하는 것은 변동성이 큰 volatile 구체적인 요소이다. 이 구체적인 요소는 한창 개발중이라 자주 변경될 수밖에 없는 모듈이라고 할 수 있다. 쉽게 말해 구체인 class가 추상인 interface를 참조하는 모습을 생각하면 된다. - 변동성이 큰 구체 클래스를 (직접)참조하지 말 것. 대신 추상 팩토리 Abstract Factory 를 사용한다. - 변동성이 큰 구체 클래스로부터 파생(상속)하지 말 것. - 구체 함수를 오버라이드 override ..