9장 유연한 설계


9장 유연한 설계

개방 폐쇄 원칙 소프트웨어 개체는 확장에 대해 열려 있어야 하고 수정에 대해서는 닫혀 있어야 한다. 확장에 대해 열려 있다 : 애플리케이션의 요구사항이 변경될 때 이 변경에 맞게 새로운 동작을 추가해서 애플리케이션의 기능을 확장할 수 있다. 수정에 닫혀 있다 : 기존 코드를 수정하지 않고 애플리케이션의 동작을 추가하거나 변경할 수 있다. 컴파일 타임 의존성을 고정시키고 런타임 의존성을 변경하라 개방 폐쇄 원칙은 런타임 의존성과 컴파일 타임 의존성과 관련 있다. 개방 -폐쇄 원칙의 핵심은 추상화에 의존하는 것! 추상화를 거치면 문맥이 바뀌더라도 변하지 않는 부분만 남게 되고 문맥에 따라 변하는 부분은 생략됨 개방 폐쇄 원칙에서 폐쇄를 가능하게 하는 것은 의존성의 방향이다. 모든 요소가 추상화에 의존해야 된다. 생성 사용 분리 결합도가 높아질수록 개방 폐쇄 원칙을 따르는 구조를 설계하기가 어려워진다. 생성자 내에서 인터페이스를 상속받는 구체적인 클래스 생성하는 경우 동일한 클래스 안에서...


#OOP #객체지향 #오브젝트 #의존성

원문링크 : 9장 유연한 설계