본문 바로가기
728x90

오브젝트6

Chapter 3. 역할, 책임, 협력 객체지향 패러다임의 관점에서 핵심은 역할(role), 책임(responsibility), 협력(collaboration)이다. 클래스, 상속, 지연 바인딩 역시 중요하지만 이들은 구현에 치우쳐져 있기 때문에 객체지향 패러다임의 본질과는 거리가 있다. 객체지향의 본질은 협력하는 객체들의 공동체를 창조하는 것이다. 객체지향 설계의 핵심은 협력을 구성하기 위해 적절한 객체를 찾고 적절한 책임을 할당하는 과정에서 드러난다. 애플리케이션 기능 구현을 위해 객체들 간의 필요한 역할, 책임, 협력을 고려하지 않고 구현을 한다면 변경이 어렵고 유연하지 못한 코드가 나온다. 따라서 완성도 높은 코드를 작성하기 위해서는 높은 응집도, 중복 없는 상속 계층을 구현하는 것 보다도 역할, 책임, 협력에 대한 고려가 우선시 되어.. 2022. 1. 6.
Chapter 2. 객체지향 프로그래밍 영화 예매 시스템 예제 영화 예매 시스템을 사용해 사용자는 영화를 예매할 수 있다. 예제에 들어가기 전 용어에 대해 설명하겠다. 영화는 영화 자체에 대한 제목, 상영시간, 가격 같은 영화 하나가 가지고 있는 기본적인 정보이다. 상영은 실제로 관객들이 관람하는 사건이다. 상영은 상영일자, 시간, 순번등을 가지고 있다. 이 용어의 구분이 중요한 이유는 사용자가 실제로 예매하는 대상은 영화가 아니라 상영이기 때문이다. 사람들은 영화를 예매한다고 표현하지만 실제로는 특정 시간에 상영되는 영화를 관람할 수 있는 권리를 구매하는 거다. 특정 조건을 만족하는 예매자는 요금을 할인 받을 수 있다. 할인을 받지 않는다면 영화의 기본 요금이 책정된다. 할인은 1명을 기준으로 하기 때문에 n명이 할인 조건에 만족하는 상영을.. 2022. 1. 3.
728x90