策略模式 - Strategy

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

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

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

 

参考

 

posted @ 2016-10-20 23:13  万箭穿心,习惯就好。  阅读(205)  评论(0编辑  收藏  举报