본문 바로가기
Study/Object

Object 객체지향 프로그래밍 발표 (준비중)

by 소고기 굽는 개발자 2023. 7. 18.

협력, 추상화 중점 발표

협력

Screening, Reservation, Movie 사이의 협력

협력은 객체들간의 요청, 응답 연관 관계를 표현한 것을 말합니다. 협력을 구성하는 처음엔 시스템의 요구사항을 정리합니다. 정리된 요구사항을 토대로 객체들의 행동을 정의하고 각 행동을 기준으로 행동을 아는 객체와 행동을 하는 객체로 구분하게 됩니다. 그리고 이런 객체들의 관계를 표현한 것을 협력이라고 합니다.

 

협력을 설명하기 위해 페이지 처음 영화와 상영 개념을 설명하는 것으로 시작하려 합니다.
영화는 제목, 상영시간, 가격 정보와 같이 영화와 관련된 기본 정보를 가지고 있습니다.
반면에 상영은 실제로 관람객들이 영화를 관람하는 사건을 말합니다.
우리들은 흔히 영화를 예매한다고 표현하지만 실제로 예매하는 대상은 영화가 아닌 상영입니다.

 

다음은 개념을 토대로 행동을 설명하고자 합니다.
그림에서 가장 첫번째 행동은 예매하라(reserve) 입니다.
예매를 하는 과정에서 관람객(Customer)과 관람객 수(audienceCount)대로 예매를 진행합니다.
두번째 행동은 관람료를 계산하라(calculateFee) 입니다.
예매하는 관람객들의 관람료를 관람객 수만큼 계산합니다.
세번째 행동은 할인 받은 영화 관람료를 계산하라(calculateMovieFee) 입니다.
예매한 관람료가 할인 조건과 할인 정책에 따라 할인을 받는다는 것입니다.
네번째 행동은 예약(Reservation) 하는 것입니다.
예매를 위한 모든 행동을 완료한 뒤 예약을 완료합니다.

 

마지막으로 행동을 토대로 협력하는 객체들을 표현하고자 합니다.
먼저 예매하라는 상영 객체가 아는 행동이 됩니다.
아는 행동이 되는 이유는 상영이 영화와 관련된 모든 정보를 다 받아서 예약이 완료되기 때문입니다
관람료를 계산하라는 상영 객체가 하는 행동이 됩니다.
이는 상영이 가격을 계산하는 행동과는 거리가 멀지만 결국 예매를 위해선 관람료 계산이 필요하기 때문입니다.
그래서 영화는 할인받은 관람료를 계산하게 되고 이는 영화가 아는 행동이 됩니다.
마지막으로 상영이 영화를 계산하고 난 뒤 예약을 하는 것으로 마무리 됩니다.

'Study > Object' 카테고리의 다른 글

object 메시지와 인터페이스  (0) 2023.08.13
object 책임 할당하기  (0) 2023.08.08
object 협력, 책임, 역할 발표  (0) 2023.07.25
object 설계 품질과 트레이드오프 발표  (0) 2023.07.25
object 객체, 설계 발표  (0) 2023.07.18