2025/04/03 3

[오브젝트] 5. 책임 할당하기

조영호 님의 "오브젝트" 책을 정리한 글입니다.1. 책임 주도 설계를 향해데이터보다 행동을 먼저 결정하라객체에게 중요한 것은 데이터가 아니라 행동 (곧 객체의 책임을 의미함)객체는 협력을 위한 존재이기 때문 협력이라는 문맥 안에서 책임을 결정하라개념설명책임 할당 원칙- 메시지를 먼저 결정한 후 객체를 선택해야 함 - 즉, 메시지가 객체를 결정함설계 순서✅ 메시지 → ✅ 행동(책임) → ✅ 상태(데이터)장점- 캡슐화를 지키기 훨씬 쉬움 책임 주도 설계책임부터 정한 후, 책임을 담당할 객체를 결정하는 것책임이 어느정도 정리될 때까지 내부 상태에 대해 관심을 가지지 않음 2. 책임 할당을 위한 GRASP 패턴도메인 개념에서 출발하기설계 시작 전, 도메인에 대한 개략적인 모습을 그려 보기항목내용방법도메인 개념들..

Code/OOP 2025.04.03

[오브젝트] 4. 설계 품질과 트레이드오프

조영호 님의 "오브젝트" 책을 정리한 글입니다.1. 데이터 중심의 영화 예매 시스템데이터를 준비하자데이터 중심의 설계객체 내부에 저장되는 데이터를 기반으로 시스템을 분할하는 방법객체 내부에 저장해야 하는 "데이터가 무엇인가"를 묻는 것으로 시작됨 예제더보기public class Movie { private String title; private Duration runningTime; private Money fee; private List discountConditions; private MovieType movieType; private Money discountAmount; private double discountPercent; pub..

Code/OOP 2025.04.03

[오브젝트] 3. 역할, 책임, 협력

조영호 님의 "오브젝트" 책을 정리한 글입니다.1. 협력영화 예매 시스템 돌아보기기능을 완성하기 위해 다앙한 객체들이 메시지를 주고받으면서 상호작용함 협력애플리케이션이 기능을 구현하기 위해 객체 간의 상호작용을 수행하는 과정요소설명메시지 전송객체 간 협력을 위한 커뮤니케이션 수단메서드객체가 메시지를 수신하면 실행하여 요청에 응답캡슐화객체가 자율적으로 작업을 수행하기 위해 내부 구현을 숨김 객체의 역할개념설명책임객체가 협력에 참여하기 위해 수행하는 행동역할객체들이 협력 안에서 수행하는 책임들의 집합 협력이 설계를 위한 문맥을 결정한다객체의 상태와 행동을 어떤 기준으로 결정해야 하는가?요소설명행동객체가 참여하는 협력에 의해 결정됨 (객체가 필요한 이유와 행동의 동기를 제공)상태객체의 행동 수행에 필요한 정보..

Code/OOP 2025.04.03