abstract class strategy
public class concretestrategya extends strategy
}/******************************************/
public class concretestrategyb extends strategy
}/******************************************/
public class concretestrategyc extends strategy
}
public class context
//上下文介面
public void contextinte***ce()
}
context context;
context = new context(new concretestrategya());
context.contextinte***ce();
context = new context(new concretestrategyb());
context.contextinte***ce();
context = new context(new concretestrategyc());
context.contextinte***ce();
策略模式將例項化交給了客戶端來選擇,再由context類進行具體例項化操作以及呼叫實現方法。
策略模式的strategy類層次為contetx定義了一系列的可供重用的演算法或者行為,繼承有利於析取出這些行為的公共部分。
策略模式的另外乙個優點是簡化了單元測試,因為每個行為都有自己的類,可以通過呼叫自己的介面來進行測試。
設計模式 策略模式 2
設計模式,先說設計模式吧,對於設計模式而言,這裡邊把事物具體抽象出來,就剩下什麼了?就剩下 如何用乙個良好的結構儲存資料?然後如何用乙個擴充套件性強,可維護性高的操作,來實現這些資料的操作與控制 好了,感言說完了,接下來就是,聊一聊設計模式中的 策略模式!對於策略模式而言,有乙個比較好的例子,那就是...
2 設計模式 策略模式
定義 它定義了演算法家族,分別封裝起來,讓他們之間可以互相替換,此模式讓演算法的變化,不會直接影響到用演算法的客戶。模式分析 策略模式是一種定義一系列演算法的模式,完成的工作相同,只是由於實現不同,所以以相同的方式呼叫,減少了各種演算法類與使用演算法類之間的耦合。策略模式可以封裝任何型別的規則,實踐...
設計模式(2) 策略模式
我有乙個夢想,我寫的 可以像詩一樣優美。我有乙個夢想,我做的設計,能恰到好處,既不過度,也無不足。前面說了常用的工廠方法模式 簡單工廠 抽象工廠,今天說一下策略模式。策略模式我的理解其實很像工廠模式,這也是為什麼第二個會寫策略模式的原因。策略模式 從結構上來講策略模式分為乙個持有具體演算法引用的類 ...