`

策略模式

阅读更多
所谓策略模式就是定义了多种算法,而让不同算法之间的切换不会影响到客户端。
策略模式主要涉及3个组成部分
(1)       环境对象:该类中实现了对抽象策略中定义的接口或者抽象类的引用。
(2)       抽象策略对象:它可由接口或抽象类来实现。
(3)       具体策略对象:它封装了实现同不功能的不同算法。
因此很好理解就是定义一个抽象的接口,该接口包含了一个之类公共的方法,然后定义不同的算法去实现该接口,最后定义一个容器即环境,使用组合的方式将抽象接口注入到容器当中。
最后在调用时动态的向容器中注入具体的策略方法。
实例如下
定义策略接口
public interface Oprator{
  
   void work();

};
定义策略实现类
public class AddOperator implements Operator{
    void work(){
     sysout("添加操作");
   }
};
public class UpdateOperator implements Operator{
    void work(){
     sysout("修改操作");
   }
};
定义环境
public class Context{
   private Operator operator;
   public Context(Operator ope){
   this.operator = ope;
  }
 
   public void operate(){
   operator.work();
  }
};

调用
main(){
    Context addCon = new Context(new AddOperator());
    addCon.operator();

     Context updateCon = new Context(new updateOperator());
     updateCon.operator();

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics