객체 간 결합도를 낮추어 변경이 용이한 코드를 만들어라.
파트 1에서 봤던 Theater 클래스를 개선했다.
객체지향 설계 >경계의 명확성이 객체의 자율성을 보장한다 영화 예매 시스템 > 영화의 상영을 예매하는 영화 예매 시스템 개발 요구사항 한 영화에는 여러 개의 상영 시간이 존재한다. 한 영화에는 할인 정책과 할인 조건이 존재한다. 한 영화에 대해 할인 정책은 하나만 지정할 수 있지만 할인 조건은 여러 개 지정할 수 있다. 할인 정책에는 금액 할인(e...
이번 파트에서는 상속과 다형성에 대해서 다뤄본다.
객체지향의 핵심은 역할, 책임, 협력이다.
객체지향에서 가장 중요한 것은 책임, 협력, 역할. 그 중에서도 가장 중요한 것은 책임이다.
데이터 중심의 설계의 문제점은 캡슐화 위반이다. 높은 결합도와 낮은 응집도 문제를 해결하기 위한 방법이 책임 중심 설계이다.
메시지는 두 객체 사이의 협력 매개체이고, 객체 간의 유일한 의사소통 수단이다.
이번 장의 목적은 다양한 의존성 관리 기법을 원칙의 관점에서 정리한다.
합성에 대해 살펴보고 두 구현 기법의 장점과 단점을 비교한다.
변경에 유연한 코드가 좋다는 관점 하에 객체 합성이 클래스 상속보다 좋은 방법이다.
상속에는 두 가지 목적이 있다. 타입 계층의 구현코드 재사용. 이 중 코드 재사용은 부모 클래스의 구현에 자식 클래스가 의존적이게 되므로 지양하는 것이 좋다.
객체는 협력에 따라 동작하므로 협력 관계를 어떻게 설정하는지에 따라 유지보수성이 결정된다. 즉, 협력 구조의 일관성이 중요하다.
디자인 패턴과 프레임워크 디자인 패턴 어떤 문제가 반복적으로 발생할 때 반복적으로 적용 가능한 해결 방법. 설계를 재사용하기 위해서 사용함 프레임워크 설계와 코드를 함께 재사용하기 위해서 사용함 일관성 있는 코드 디자인 패턴 특정한 변경을 일관성있게 다룰 수 있는 협력 템플릿이다. 프레임워크 ...