8장에서 살펴본 다양한 의존성 관리 기법들을 원칙이라는 관점에서 정리하자는 것이 9장의 주제다.


개방-폐쇄 원칙 OCP (Open-Closed Principle)

OCP는 유연한 설계란 기존의 코드를 수정하지 않고도 애플리케이션의 동작을 확장할 수 있는 설계라고 이야기한다. 애플리케이션의 동작을 확장하려면 일반적으로 어찌되었든 코드를 수정해야 하는데 어떻게 코드를 수정하지 않고도 동작을 추가할 수 있는 것일까?

사실 OCP는 런타임 의존성과 컴파일타임 의존성에 관한 이야기다(8장 참고).

예를들어 8장 마지막 부분에서 나왔던 Movie의 경우

추상화가 핵심이다