Skip to content

Commit

Permalink
[update feature] 고객 예약 스크린 모델링 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
creaton60 committed Jan 16, 2020
1 parent d63f3d8 commit 94d2ed9
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 26 deletions.
13 changes: 13 additions & 0 deletions src/main/java/study/book/object/movie/Customer.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,17 @@
package study.book.object.movie;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Getter @Setter
@ToString
public class Customer {
private String name;
private String id;

public Customer(String name, String id) {
this.name = name;
this.id = id;
}
}
3 changes: 3 additions & 0 deletions src/main/java/study/book/object/movie/Reservation.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package study.book.object.movie;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Getter @Setter
@ToString
public class Reservation {
private Customer customer;
Expand Down
32 changes: 6 additions & 26 deletions src/main/java/study/book/object/movie/Screening.java
Original file line number Diff line number Diff line change
@@ -1,35 +1,15 @@
package study.book.object.movie;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.time.LocalDateTime;

@Getter @Setter
@ToString
public class Screening {
private Movie movie;
private int sequece;
private LocalDateTime whenScreened;

public Screening(Movie movie, int sequence, LocalDateTime whenScreened) {
this.movie = movie;
this.sequece = sequence;
this.whenScreened = whenScreened;
}

public Reservation reserve(Customer customer, int audienceCount) {
return new Reservation(customer, this, calculateFee(audienceCount), audienceCount);
}

public LocalDateTime getStartTime() {
return whenScreened;
}

public boolean isSequence(int sequence) {
return this.sequece == sequece;
}

public Money getMovieFee() {
return movie.getFee();
}

private Money calculateFee(int audienceCount) {
return movie.calculateMovieFee(this);
}
}

0 comments on commit 94d2ed9

Please sign in to comment.