目標:我們需要乙個計算**的類,有時候會打折
1.我們先設計乙個介面
public inte***ce pricecalculationstrategy
2.我們有一些計算實現
public class defaultdiscountpricecalstrategy implements pricecalculationstrategy
@override
public boolean match(double price, double copies)
}
public class nodiscountpricecalstrategy implements pricecalculationstrategy
public boolean match(double price, double copies)
}
public class discountpricecalstrategy implements pricecalculationstrategy
public void setdiscount(double rate)
public boolean match(double price, double copies) else if( price >=1000)
return match;
}}
3.計算工具類,發現我們根本不要自己判斷,每個策略自己判斷執不執行
public class pricecalculationutil
public static double pricecalculation(double price , double copies)
} //優先其他策略,我不會告訴你我打的廣告「 1折 商品 」 是假的,你看我有這個策略的
defaultdiscountpricecalstrategy defaultd = new defaultdiscountpricecalstrategy();
return defaultd.calculateprice(price, copies);
}
}
4.測試
public class pricecalculationutiltest
}
策略模式在struts2中主要作用位置:
1.載入多配置,預設的,外掛程式的,應用的;
2.用於外掛程式模式,外掛程式就好比如其中的乙個策略。每個策略選擇的地方,就是struts2的乙個擴充套件點。
策略模式 模擬Struts選擇策略決策轉移
目標 我們需要乙個計算 的類,有時候會打折 1.我們先設計乙個介面 public inte ce pricecalculationstrategy2.我們有一些計算實現 public class defaultdiscountpricecalstrategy implements pricecalc...
JavaScript 模擬策略模式
模擬乙個介面,其方法會丟擲異常 function flyinter flyinter.prototype.fly function 實現乙個fly noway的方法 function flynoways flynoways.prototype.fly function 實現乙個fly with wi...
設計模式 策略模式 多演算法選擇的福音
策略模式 strategy pattern 是指定義了演算法家族 分別封裝後,讓他們相互之間可以互相替換,次模式讓演算法的變化不會影響到使用演算法的使用者。大家在網購中經常會碰到優惠活動,有使用優惠券或滿199 100返現活動等,而這些不一樣的優惠方式就可以用上策略模式。首先,我們定義乙個 優惠的抽...