工廠與策略結合:
將工廠模式與策略模式結合使用:
工廠模式:——客戶端需要用到工廠和方法類
傳入引數
判斷選擇實體型別
返回例項化的型別
策略模式:——客戶端需要用到策略和方法類
傳入的是(已經判斷選擇的例項化的)實體型別
宣告乙個方法,呼叫實體的方法
客戶端呼叫策略類的這個
結合後:——客戶端只需用到工廠策略類
傳入引數
判斷選擇實體型別
宣告乙個方法,呼叫實體的方法
classcashcontextfactory
private cashsuper cs;
public cashcontextfactory (string type)
switch (type)
case "正常收費":
cs = new cashnormal();
break;
case "打八折":
cs = newcashrebhate("0.8");
break;
case "打七折":
cs = newcashrebhate("0.7");
break;
case "滿500送100":
cs = newcashreturn("500", "300");
break;
public double getresult(double monty)
return cs.acceptcash(monty);
策略與簡單工廠結合
策略模式是一種定義一系列演算法的方法,從概念上看,所有這些演算法完成的都是相同的工作,只是實現不同,它可以以相同的方式呼叫所有的演算法,減少了各種演算法類與使用演算法類之間的耦合。策略模式的strategy類層次為context定義了一系列的可供重用的演算法或行為。繼承有助於析取出這些演算法中的公共...
策略模式與工廠模式的結合使用
定義了一組演算法 業務規則 封裝了每個演算法 這族的演算法可互換代替 interchangeable 抽象策略角色 策略類,通常由乙個介面或者抽象類實現。環境角色 持有乙個策略類的引用,最終給客戶端呼叫。為了方便比對傳入的場景值,選擇對應的策略處理類,定義乙個執行時註解 就是真正處理執行巡檢點位的實...
簡單工廠和策略模式結合
商場 活動 打折 滿額返現等等 主函式對工廠模式和策略模式結合的呼叫 class program cashsuper類定義 返回參加活動後結果,使用多型特性 public abstract class cashsuper 正常 打折和滿額返現的實現 public class cashnormal c...