나는 장바구니의 가격을 출력 할 장바구니 응용 프로그램을 작성 중입니다. 나는이 장바구니, 구매, 또한 서비스를 할 수 있습니다 제공하고 카트를 가질 수 개별 제품 위와 같이 제품Java 디자인 패턴 - 제품 및 장바구니에 쿠폰을 적용하는 방법
public class Product {
private int id;
private String name;
private double price;
Offer offer;
// getter setter
public double getPrice(int quantity) {
return offer.getPrice....
}
}
public class Purchase {
Product product;
int quantity;
// getter setter
public double getPrice() {
return product.getPrice(quantity);
}
}
public class Cart {
List<Purchase> purchase = new ArrayList<Purchase>();
Offer offer;
Integer loyalityPoints;
//getter setter
public double getTotal(){
double total = 0;
for (Purchase purchase : purchase) {
total += purchase.getPrice();
}
double finalPrice = offer.getPrice(total,....;
return finalPrice;
}
}
을 위해 3 종류가 있습니다.
처음에는 제공 공장이 있다고 생각했습니다. OfferPrice는 추상 클래스 &이 될 수 있습니다. 그 자식은 buyonegetoneprice, buytwogetoneprice, 50precentoffprice를 구매할 수 있지만 buyonegetoneprice에 대한 입력은 qunatity가되며 가격은 50precentoffprice만의 값입니다.
이것은 두 가지 다른 방법을 의미하지만 OfferPrice의 구현자는 단 하나의 구현과 관련이 있습니다.
어떻게 장바구니에 제공 할 수 있을까요? 장바구니에있는 쿠폰은 고객 충성도 포인트 또는 50percentoff 또는 다른 것을 기반으로 할 수 있습니다.
장바구니 및 개별 제품에 대해 이러한 제품을 확장 가능하도록 설계하는 방법은 무엇입니까?