策略模式定义
也叫政策模式,定义一组算法,将每个算法都封装起来,并使它们之间可以互换。
策列模式使用的是面向对象的继承和多态机制。
优点
- 算法自由切换
- 避免使用多重条件判断
- 扩展性良好
缺点
- 策略类数量增多
- 所有策略类都需要对外暴露
策略模式类图

策略模式角色
- Context封装角色
- Strategy抽象策略角色
- ConcrecteStrategy具体策略角色
具体示例
抽象的策略角色
public interface IStrategy{
public void doSomething();
}
具体策略角色
public class ConcreteStrategyA implements IStrategy{
public void doSomething(){
//to do
}
}
public class ConcreteStrategyB implements IStrategy{
public void doSomething(){
//to do
}
}
public class ConcreteStrategyC implements IStrategy{
public void doSomething(){
//to do
}
}
封装角色
public class Context{
private IStrategy strategy = null;
public Context(IStrategy strategy){
this.strategy = strategy;
}
//封装后的策略方法
public void doSomething(){
this.strategy.doSomething();
}
}
上层模块
public class Client{
public static void main(string[] args){
//声明具体策略
IStrategy strategy = new ConcreteStrategyA();
//声明上下文对象
Context context = new Context(strategy);
//执行封装后的方法
context.doSomething();
}
}

本文深入解析策略模式,一种定义算法族并使它们可互换的设计模式。通过策略模式,可以实现算法的自由切换,避免多重条件判断,提高代码的扩展性和维护性。文章详细介绍了策略模式的定义、优点、缺点及其实现方式。

4878

被折叠的 条评论
为什么被折叠?



