91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4KB
    文件類型: .java
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-02
  • 語言: Java
  • 標簽: java??

資源簡介

大作業設計模式一(單子、工廠、策略模式)練習 假設現在要設計一個販賣各類書籍的電子商務網站的購物車系統。對所有的教材類圖書 實行每本一元的折扣;對連環畫類圖書提供每本7%的促銷折扣;而對非教材類的計算機圖書有3%的折扣;對其余書沒有折扣。使用策略模式、工廠模式、單子模式進行設計

資源截圖

代碼片段和文件信息

package?homework6;

import?java.util.ArrayList;

class?PricingStrategyFactory{
private?static?PricingStrategyFactory?instance;
private?PricingStrategyFactory??()?{}
public?static?synchronized?PricingStrategyFactory?getInstance()?{
if(instance?==?null)?{
instance?=?new?PricingStrategyFactory?();
}?
return?instance;?
}
????public?IPricingStrategy?getPricingStrategy(int?bookType){
???? IPricingStrategy?ips?=?null;
???? switch(bookType)?{
???? case?0:?ips?=?new?NoDiscountStrategy();break;
???? case?1:?ips?=?new?FlatRateStrategy(1);break;
???? case?2:?ips?=?new?PercentageStrategy(3);break;
???? case?3:?ips?=?new?PercentageStrategy(7);break;
???? }
???? return?ips;
????}
}

class?ProductSpecification{
public?String?isbn;
public?String?title;
????public?double?price;
????public?int?type;
????public?ProductSpecification(String?s1String?s2double?dint?t){
???? isbn=s1;?title=s2;?price=d;?type=t;
????}
????public?double?getPrice(){
???? return?price;
????}
????public?String?toString(){
???? return?String.format(“isbn:%-20stitle:%-20sprice:%-20stype:%-20s“?isbntitlepricetype);
????}
}


class?SaleLineItem?{
????private?int?copies;
????private?ProductSpecification?pSpec;
????private?IPricingStrategy?strategy;
????public?SaleLineItem(int?cProductSpecification?p){
???? copies=c;
???? pSpec=p;
???? PricingStrategyFactory?psf?=?PricingStrategyFactory.getInstance();
???? strategy?=?psf.getPricingStrategy(pSpec.type);
????}
????public?void?setCopies(int?c){copies=c;}
????public?int?getCopies(){return?copies;}
????public?String?gettitle(){return?pSpec.title;}
????public?String?getIsbn(){return?pSpec.isbn;}
????public?double?getPrice(){return?pSpec.price;}
????public?double?getSubTotal(){return?strategy.getSubTotal(this);}
}

interface?IPricingStrategy{
public?int?getStrategyType();
public?String?getData();
public?double?getSubTotal(SaleLineItem?item);
}

class?NoDiscountStrategy?implements?IPricingStrategy{
public?int?strategyType=0;
public?String?getData(){return?“0“;}
public?int?getStrategyType(){return?strategyType;}
????public?double?getSubTotal(SaleLineItem?item){
???? return?item.getPrice()*item.getCopies();
???

評論

共有 條評論