Open tonykang22 opened 2 years ago
CheckIn은 기능이 하나이며, Ticket의 정보를 두 개나 참고하고 있다. 이러한 경우에, isFastPass()의 위치가 올바른지 생각해볼 여지가 있다.
isFastPass()
public class Ticket { private LocalDate purchasedDate; private boolean prime; public Ticket(LocalDate purchasedDate, boolean prime) { this.purchasedDate = purchasedDate; this.prime = prime; } public LocalDate getPurchasedDate() { return purchasedDate; } public boolean isPrime() { return prime; } }
public class CheckIn { public boolean isFastPass(Ticket ticket) { LocalDate earlyBirdDate = LocalDate.of(2022, 1, 1); return ticket.isPrime() && ticket.getPurchasedDate().isBefore(earlyBirdDate); } }
public class Ticket { private LocalDate purchasedDate; private boolean prime; public Ticket(LocalDate purchasedDate, boolean prime) { this.purchasedDate = purchasedDate; this.prime = prime; } public LocalDate getPurchasedDate() { return purchasedDate; } public boolean isPrime() { return prime; } public boolean isFastPass(Ticket ticket) { LocalDate earlyBirdDate = LocalDate.of(2022, 1, 1); return isPrime() && getPurchasedDate().isBefore(earlyBirdDate); } }
냄새 19. 내부자 거래 (Insider Trading)
예시 코드
Before
CheckIn은 기능이 하나이며, Ticket의 정보를 두 개나 참고하고 있다. 이러한 경우에,
isFastPass()
의 위치가 올바른지 생각해볼 여지가 있다.After