策略模式 - Strategy

时间:2023-03-08 17:10:34

 Strategy Pattern,定义算法家族,分别封装起来,互相之间可替换,此模式让算法的变化不会影响到使用算法的客户端。

 // 上下文类(Context):用一个ConcreteStratege来配置,维护一个对Stratege对象的引用。
public class Context{
private Strategy strategy;
public Context(Strategy strategy){ // 初始化上下文时,将具体策略传入
this.strategy = strategy;
}
public void ContextInterface(){ // 根据具体策略对象,动态调用其算法
strategy.AlgorithmInterface();
}
}

改进:可以与简单工厂模式结合,进一步降低耦合,减轻客户端代码冗余。

参考: