对于策略模式的理解是这样的:
做同一类型的事情,有不同的做法,这依赖于不同的上下文环境。但是有一个统一的模式。
就好像某网站对不同等级的用户有不同的折扣一样。
下面是代码结构:
策略接口
public interface Strategy {
public void doSomething();
}
不同策略的不同实现
public class StrategyA implements Strategy {
@Override
public void doSomething() {
System.out.println("Strategy A do something.");
}
}
public class StrategyB implements Strategy {
@Override
public void doSomething() {
System.out.println("Strategy B do something.");
}
}
策略执行的统一方式
public class Context {
private Strategy strategy;
public Context(Strategy strategy) {
this.strategy = strategy;
}
public void ex