个人的理解就是,在一个类中注入一个接口或者抽象类,在创建这个类的时候,动态的注入接口或抽象类的实现类,然后在这个类中调用其方法,这就是策略模式。
定义一个抽象类
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();
}
}