이론과 개념은 잠시 뒤로 미루고 간단한 프로그램 구현부터 시작합니다.
작은 소극장이 있고 추첨을 통해 관람객에게 무료로 공연을 볼 수 있는 초대장을 발송합니다.
Invitation
을 구현합니다. 그리고 공연을 보려는 사람은 티켓 - Ticket
이 필요합니다.이벤트 당첨자는 티켓을 교환할 초대장을, 그렇지 않은 사람은 구매할 수 있는 현금을 가지고 있을 것입니다.
고로 관람객의 소지품은 세 가지뿐이고 이를 보관할 용도로 가방을 들고 올 수 있다고 가정하고 Bag
클래스를 추가합니다. 필요한 구성은 다음과 같습니다.
초대장과 티켓의 소유 여부를 판단하는 메소드
현금을 관리하는 메소드
초대장을 티켓으로 교환하는 메서드
초대장은 있을 수도 없을 수도 있으나 현금은 항상 있을 것이니, 이를 생성자로 강제할 것
Bag의 구현 코드
관람객을 구현하는 Audience 클래스도 필요합니다. 관람객은 가방을 소유할 수 있습니다.
관람객에 소극장에 입장하기 위해서는 매표소에서 초대장을 구매해야 합니다.. 고로 매표소에는 티켓과 판매금액이 보관돼 있어야 하므로 TicketOffice 클래스를 추가합니다.
자신이 일하는 매표소를 알고있는 판매원 TicketSeller 클래스도 필요합니다.