设计模式之策略模式

来源:互联网 发布:淘宝卖家怎样申诉 编辑:程序博客网 时间:2024/06/03 16:47


        策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合。


示例类图:


示例代码:

public interface Strategy{          public void Algorithmlnterface();}

public class ConcreteStrategyA implements Strategy{          public void Algorithmlnterface()          {                    System.out.println("A");          }}

public class ConcreteStrategyB implements Strategy{          public void Algorithmlnterface()          {                    System.out.println("B");          }}

public class ConcreteStrategyC implements Strategy{          public void Algorithmlnterface()          {                    System.out.println("C");          }}

public class Context{        private Strategy strategy;        public Context(Strategy strategy){                   this.strategy=strategy;        }        public void AlgorithmInterface(){                   strategy.AlgorithmInterface();        }}

调用:

public class test{         public static void main(String[] args){                  Context c=new Context(new ConcreteStrategyC());                  c.AlgorithmInterface();        }}

        策略模式就是用来封装算法的,但在实践中,我们发现可以用它来封装几乎任何类型的规则,只要在分析过程中听到需要在不同时间应用不同业务规则,就可以考虑使用策略模式处理这种变化的可能行。


0 0
原创粉丝点击