public interface IStrategy {
public void doSomething();
}
public class IStrategyMethod1 implements IStrategy {
@Override
public void doSomething() {
System.out.println("IStrategyMethod1");
}
}
public class IStrategyMethod2 implements IStrategy {
@Override
public void doSomething() {
System.out.println("IStrategyMethod2");
}
}
public class Context {
private IStrategy iStrategy;
public Context(IStrategy iStrategy) {
this.iStrategy = iStrategy;
}
public void execute() {
iStrategy.doSomething();
}
public static void main(String[] args) {
Context context = new Context(new IStrategyMethod1());
context.execute();
Context context1 = new Context(new IStrategyMethod2());
context1.execute();
}
}
定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。
策略模式是一种简单常用的模式,我们在进行开发的时候,会经常有意无意地使用它,一般来说,策略模式不会单独使用,跟模版方法模式、工厂模式等混合使用的情况比较多。