国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java設計模式之Strategy模式

2019-11-26 14:03:26
字體:
來源:轉載
供稿:網友

基于有了OO的基礎后,開始認真學習設計模式!設計模式是java設計中必不可少的!

Apple.java

package strategy;/** *  * @author Andy * */ public class Apple implements Discountable {  //重量  private double weight;  //單價 實際開發中 設計金錢等精確計算都是BigDecimal;    private double price;    //按購買量打折  // private Discountor d = new AppleWeightDiscountor();    //按購買總價打折    private Discountor d = new ApplePriceDiscountor();       public double getWeight() {    return weight;  }     public void setWeight(double weight) {    this.weight = weight;  }     public double getPrice() {    return price;  }     public void setPrice(double price) {    this.price = price;  }  public Apple (double weight,double price ){       super();    this.weight=weight;    this.price=price;  }   @Override  public void discountSell() {     d.discount(this);  }  }

Banana.java

package strategy;/** *  * @author Andy * */public class Banana implements Discountable {  //重量  private double weight;////單價 實際開發中 涉及金錢等精確計算都是用BigDecimal  private double price;     public Banana(double weight, double price) {    super();    this.weight = weight;    this.price = price;  }   public double getWeight() {    return weight;  }     public void setWeight(double weight) {    this.weight = weight;  }     public double getPrice() {    return price;  }     public void setPrice(double price) {    this.price = price;  }   @Override  public void discountSell() {    //打折算法    if(weight < 5) {      System.out.println("Banana未打折價錢: " + weight * price);    }else if(weight >= 5 && weight < 10) {      System.out.println("Banana打八八折價錢: " + weight * price * 0.88 );    }else if(weight >= 10) {      System.out.println("Banana打五折價錢: " + weight * price * 0.5 );    }           }}

Market.java

package strategy;/** *  * @author Andy * */public class Market {     /**   * 對可打折的一類事物進行打折   * @param apple   */  public static void discountSell(Discountable d) {    d.discountSell();}}

Discountable.java

package strategy;/** *  * @author Andy * */public interface Discountable {  public void discountSell();}

Test.java

package strategy;/** *  * @author Andy * */public class Test {     /**   *    * @param args   */   public static void main(String[] args) {//    只能對蘋果打折 還不能對通用的一類事物打折 而且都是要賣什么就寫什么打折算法 //   其實每類事物打折算法又是不一致的    Discountable d = new Apple(10.3, 3.6);    Discountable d1= new Banana(5.4,1.1);      Market.discountSell(d);      Market.discountSell(d1);        } }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临汾市| 横山县| 高平市| 邵阳县| 犍为县| 赤壁市| 福安市| 富民县| 斗六市| 隆回县| 海门市| 屏南县| 永修县| 宜昌市| 通许县| 湘西| 博爱县| 麦盖提县| 琼中| 明光市| 阿克苏市| 巨野县| 石河子市| 句容市| 安宁市| 贵港市| 墨竹工卡县| 东源县| 瓮安县| 大同县| 正蓝旗| 五原县| 大理市| 建阳市| 霍州市| 井冈山市| 天峨县| 洛宁县| 旌德县| 冷水江市| 双牌县|