策略模式:它定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响使用算法的用户!
实例:
1、创建一个抽象类Strategy.java,定义所有支持的算法的公共接口;
创建具体实现类ConcreteStrategy,封装具体的算法或行为,继承于Strategy.java;
Context,用一个ConcreteStrategy来配置,维护一个Strategy的引用。
2、具体实现:
Strategy.java:
abstract class Strategy {
public abstract void algorithmInterface();
}
ConcreteStrategyA.java:
public class ConcreteStrategyA extends Strategy{
@Override
public void algorithmInterface() {
System.out.println("算法A实现");
}
}
Context.java:
public class Context {
Strategy strategy;
public Context(Strategy strategy){
this.strategy = strategy;
}
public void contextInterface(){
strategy.algorithmInterface();
}
}
Main.java:
public class Main {
public static void main(String[] args){
Context context;
context = new Context(new ConcreteStrategyA());
context.contextInterface();
context = new Context(new ConcreteStrategyB());
context.contextInterface();
context = new Context(new ConcreteStrategyC());
context.contextInterface();
}
}
3、运行截图:
4、本例源码下载地址: