본문 바로가기

오브젝트

(2)
오브젝트 - 2 ※ 이글은 독자를 전혀 배려하지 않고 그냥 제가 정리하고 싶은 내용 정리하는 글입니다. 86p~129p 역할 - 역할은 객체가 참여할 수 있는 일종의 슬롯 (추상 클래스나 인터페이스로 구현) - 협력에 참여하는 후보가 여러 종류의 객체에 의해 수행될 필요가 있다면 그 후보는 역할, 아니라면 객체 - 설계시 역할을 사용할지, 객체를 사용할지 애매하다면, 단순하게 객체로 시작하고, 책임과 협력을 정제해가면서 필요한 순간에 객체로부터 역할을 분리해내는 것이 가장 좋은 방법이다. - 객체는 다양한 역할을 가질 수 있지만, 특정한 협력 안에서는 오직 하나의 역할로 보여진다. 4. 설계 품질과 트레이드 오프 객체지향 설계의 핵심은 역할, 책임, 협력 - 역할: 대체 가능한 책임의 집합 - 책임: 객체가 다른 객체와..
오브젝트 - 1 ※ 이글은 독자를 전혀 배려하지 않고 그냥 제가 정리하고 싶은 내용 정리하는 글입니다. ~86p 객체지향 프로그래밍 - 협력, 객체, 클래스 o 어떤 클래스가 필요한지 이전에 어떤 객체들이 필요한지 고민하라. o 객체를 독립적인 존재가 아닌 공동체의 일원으로 봐야 한다. 클래스는 도메인과 최대한 유사하게 만들어야 한다. (가능하다면 기획서에 있는 구조로 클래스를 짜야지) TEMPLATE METHOD 패턴 - 부모 클래스에 기본적 알고리즘의 흐름을 구현하고, 중간에 필요한 처리를 자식 클래스에게 위임하는 패턴 영화 예매 시스템 예제 클래스 사이의 의존성은 객체 사이의 의존성이랑 다를 수 있음 (런타임 결정) 설계가 유연해질수록 코드를 이해하고 디버깅하기는 점점 더 어려워진다. 협력이 설계를 위한 문맥을 결..