Strategy Pattern,定义算法家族,分别封装起来,互相之间可替换,此模式让算法的变化不会影响到使用算法的客户端。
// 上下文类(Context):用一个ConcreteStratege来配置,维护一个对Stratege对象的引用。 public class Context{ private Strategy strategy; public Context(Strategy strategy){ // 初始化上下文时,将具体策略传入 this.strategy = strategy; } public void ContextInterface(){ // 根据具体策略对象,动态调用其算法 strategy.AlgorithmInterface(); } }
改进:可以与简单工厂模式结合,进一步降低耦合,减轻客户端代码冗余。
参考: