策略模式(Strategy Pattern)浅析
一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。
它可以让一个类的方法在运行时改变行为。
Strategy接口
public interface Strategy {
public int doOperation(int a, int b);
}
实现类OperationAdd(加法)和OperationSubstract(减法)
public class OperationAdd implements Strategy{
@Override
public int doOperation(int a, int b) {
return a + b;
}
}
public class OperationSubstract implements Strategy{
@Override
public int doOperation(int a, int b) {
return a - b;
}
}
Context
public class Context {
private Strategy strategy;
public Context(Strategy strategy) {
this.strategy = strategy;
}
public void printResult(int a, int b) {
System.out.println(strategy.doOperation(a, b));
}
public static void main(String[] args) {
new Context(new OperationAdd()).printResult(1, 2); //加法
new Context(new OperationSubstract()).printResult(1, 2); //减法
}
}
此时执行context的printResult会动态改变行为,结果:
3
-1