Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chapter 01 을 공부하고 테스트 코드를 추가하라 #1

Merged
merged 14 commits into from
Mar 1, 2020

Conversation

johngrib
Copy link
Owner

@johngrib johngrib commented Mar 1, 2020

image

image

johngrib added 14 commits March 1, 2020 16:04
* 이벤트 당첨자에게 발송되는 초대장을 구현했습니다.
* 초대장은 공연을 관람할 수 있는 초대일자(when)를 인스턴스 변수로 포함하는 간단한 클래스입니다.
* Bag 클레스에 두 개의 생성자를 추가하였습니다.
* 테스트 편의를 위해 책에 없는 몇 가지 코드를 추가했습니다.
    * `Bag.getAmount` 메소드
    * `Ticket(Long fee)` 생성자
* `Theater.enter`메소드의 구현을 `TicketSeller.sellTo`로 이동시켰습니다.
* `TicketSeller.getTicketOffice` 메소드를 삭제했습니다.
* `Bag`에 접근하는 모든 로직을 `Audience` 내부로 숨겼습니다.
    * `Audience.buy` 메소드를 추가했습니다.
    * `TicketSeller.sellTo` 메소드에서 bag 에 접근하는 부분을 buy 로 옮겼습니다.
* `Audience.getBag` 메소드를 삭제했습니다.
* 테스트
    * `TheaterTest` 클래스를 삭제했습니다.
    * `AudienceTest` 클래스를 추가했습니다.
* 가방에 티켓을 넣는 동작을 표현하는 `Bag.hold` 메소드를 추가했습니다.
* `Audience.buy`에서 가방에 접근하는 로직을 `Bag.hold`으로 옮겼습니다.
* `Bag`의 다음 메소드들을 `private`으로 변경하였습니다.
    * `hasInvitation`
    * `setTicket`
    * `minusAmount`
    * `plusAmount`
* `TicketOffice`
    * `sellTicketTo` 메소드를 추가했습니다. 이제 매표소는 티켓을 관람객에게 판매하게 됩니다.
    * 다음 메소드들을 `private`으로 변경했습니다.
        * `getTicket`
        * `minusAmount`
        * `plusAmount`
@johngrib johngrib merged commit e3ad439 into master Mar 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant