[오브젝트] 9장 유연한 설계
개방-폐쇄 원칙 개방폐쇄의 원칙(OCP, Open-Closed Principle)은 다음과 같이 설명된다. 소프트웨어 개채(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다. 여기서의 키워드는 확장과 수정이다. 확장에 대해 열려있다 - 애플리케이션의 요구사항이 변경될 때 이 변경에 맞게 새로운 동작을 추가해서 애플리케이션의 기능을 확장할 수 있다. 수정에 대해 닫혀있다 - 기존의 코드를 수정하지 않고도 애플리케이션의 동작을 추가하거나 변경할 수 있다. 컴파일타임 의존성을 고정시키고 런타임 의존성을 변경하라 사실 개방-폐쇄 원칙은 런타임 의존성과 컴파일타임 의존성에 관한 이야기다. 런타임 의존성 - 실행 시에 협력에 참여하는 객체들 사이의 관계다. 컴파일타임 ..