カートの価格を出力するショッピングカートのアプリケーションに取り組んでいます。 私はこのカート、購入、またプランを持つことができます提供してカートを持つことができ、個々の製品の上に示すように製品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の入力は価格のみです。
これは2つの異なる方法を意味しますが、OfferPriceの実装者は1つの実装にのみ関係します。
また、どのようにカートに表示されますか?カートでのオファーは、顧客ロイヤリティポイントまたは50パーセントオフなどに基づいています。
カートや個々の製品のためにこれらのオファーを拡張する方法でどのように設計するのですか?