※ 이 글은 독자에 대한 배려가 전혀 없으며, 제가 정리하고 싶은 내용을 정리하기 위한 글일 뿐입니다.
~86p
객체 지향 프로그래밍
– 협업, 개체, 클래스
o 필요한 클래스를 결정하기 전에 필요한 개체에 대해 생각하십시오.
o 개체는 독립적인 엔터티가 아니라 커뮤니티의 구성원으로 보아야 합니다.
클래스는 가능한 한 도메인과 유사해야 합니다.
(가능하면 제안서에 있는 구조로 수업을 구성해야 함)
TEMPLATE METHOD 패턴 – 부모 클래스에서 기본 알고리즘 흐름을 구현하고 필요한 처리를 자식 클래스에 위임하는 패턴입니다.
영화 예약 시스템의 예
클래스 간의 종속성은 개체 간의 종속성과 다를 수 있습니다(런타임 결정).
디자인이 더 유연해짐에 따라 코드를 이해하고 디버깅하기가 더 어려워집니다.
협업은 디자인의 맥락을 설정합니다.
협업의 맥락을 고려하지 않고 행동을 결정하는 것은 의미가 없습니다.
책임은 무엇입니까
– “무엇을 알고 있니?” 그리고 “무엇을 할 수 있니?”
책임은 추상적이고 개념적으로 메시지보다 큽니다.
객체 지향 개발에서 가장 중요한 기술은 소프트웨어 객체에 책임을 능숙하게 할당하는 것입니다.
– RDD(Responsibility Driven Design): 책임을 지고 책임을 맡을 적절한 장소를 찾아 책임을 부여하는 방식으로 협업을 설계하는 방법.
1) 메시지가 대상을 결정합니다.
2) 행동이 상태를 결정합니다.