1부-동작하는-도메인-모델-만들기
// as-is
public int makeBooking(Cargo cargo, Voyage voyage) {
double maxBooking = voyage.capacity() * 1.1;
if ((voyage.bookedCargoSize() + cargo.size()) > maxBooking) {
return -1;
}
int confirmation = orderConfirmationSequence.next();
voyage.add(argo(cargo, confirmation);
return confirmation;
}
// to-be
public int makeBooking(Cargo cargo, Voyage voyage) {
if (!overbookingPolicy.isAllowed(cargo, voyage)) return -1;
int confirmation = order〔 onfirmationSequence.next();
voyage.add(argo(cargo, co바irmation);
return confirmation;
}참고
Last updated