Skip to content

hyemdooly/android-movie-theater

 
 

Repository files navigation

android-movie-theater

domain

Movie

  • 제목, 상영기간, 러닝타임, 이미지를 알아야 한다.
  • MovieDetail을 소유해야 한다.

MovieDetail

  • 영화의 줄거리를 알아야 한다.

Reservation

  • 영화, 예약된 좌석, 선택한 날짜와 시간, 예매 금액을 알아야 한다.
  • 최소, 최대 예매 인원 수를 알아야 한다.

ReservationAgency

  • 영화, 인원 수, 선택된 날짜와 시간을 알아야 한다.
  • 예매 가능한지 판단한다.
  • 예매한다. (Reservation을 생성한다.)
  • 할인 정책이 적용된 총 금액을 계산한다.

DiscountPolicy

  • 할인 조건을 가져야 한다.
  • 할인 조건을 만족한다면 특정 금액의 할인 가격을 반환할 수 있다.

MovieDayDiscountPolicy

  • 할인 조건을 만족하면 10% 할인한다.
  • 10, 20, 30일에 할인 조건을 만족한다는 할인 조건을 가지고 있다.

ScreeningTimeDiscountPolicy

  • 할인 조건을 만족하면 2000원 할인한다.
  • 조조, 야간 할인 조건을 가지고 있다.

DiscountCondition

  • 영화 예매에 대해 할인할 수 있는지 판단할 수 있다.

DayDiscountCondition