个人的理解就是,在一个类中注入一个接口或者抽象类,在创建这个类的时候,动态的注入接口或抽象类的实现类,然后在这个类中调用其方法,这就是策略模式。
定义一个抽象类
public abstract class Strategy { public abstract void method(); }
定义两个实现类
public class StrategyImplA extends Strategy { public abstract void method(){...} }
public class StrategyImplB extends Strategy { public abstract void method(){} }
定义一个类,来调用Strategy
public class Context{
Strategy sta;
public Context(Strategy sta){
this.sta = sta;
}
public void doMethod(){
sta.method();
}
}
测试类
public class Test{
public static void main(String[] args){
Context c = new Context(new StrategyImplA());
c.doMethod();
c = new Context(new StrategyImplB());
c.doMethod();
}
}