오브젝트 조영호님의 책 오브젝트를 보며 정리한 내용입니다. 문제가 될 시 해당글 삭제하겠습니다. 책의 내용이 반복되는 느낌이 있지만, 이름이 가진 설계 원칙을 통해 기법들을 정리하는 것은 장황하게 설명된 내용들을 정리하고, 설계를 논의할 때 사용할 수 있는 공통 어휘를 정의한다는 점에서 의의가 있다. [개방 폐쇄 원칙(Open-Close Principle, OCP)] 객체는 확장에 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다! 확장에 대해서 열려 있다 : 애플리케이션 변경사항이 생겼을 때, 변경에 맞게 새로운 동작을 추가할 수 있다. 수정에 대해 닫혀 있다 : 기존 코드를 수정하지 않고도 애플리케이션 동작을 추가 변경이 가능하다. 추상화가 핵심이다 개방 폐쇄 원칙의 핵심은 추상화에 의존하는 것이..
조영호님의 책 오브젝트를 보며 정리한 내용입니다. 문제가 될 시 해당글 삭제하겠습니다. [의존성 이해하기] 변경과 의존성 실행 시점 : 의존하는 객체가 정상적으로 동작하기 위해서는 실행 시에 의존 대상 객체가 반드시 존재해야 한다. 구현 시점 : 의존 대상 객체가 변경된 경우 의존하는 객체도 함께 변경된다. 의존성은 방향성을 가지며 그 방향성은 항상 단방향이다. 객체가 의존하고 있는 객체가 의존하는 객체는 모두 의존관계이다.(의존성 전이) 직접 의존성 : 코드 안에서 명시적으로 드러나는 경우 간접 의존성 : 코드 안에서 명시적으로 드러나지 않는 경우 런타임 의존성과 컴파일타임 의존성 객체지향 어플리케이션에서 런타임에 주인공은 객체이다. 컴파일 타임에 주인공은 클래스이다. 중요한 것은 런타임 의존성과 컴파..