设计模式-策略模式

Posted ssyuhh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式-策略模式相关的知识,希望对你有一定的参考价值。

(大话设计模式学习总结)

策略模式:它定义了一个算法族,每个算法分别封装,算法之间可以替换,算法之间的替换不影响用户的使用。

算法的 实例化通过算法族的上下文Context进行管理,Context包含对算法的引用,在Context中可以使用简单工厂模式来管理对象的实例化,实现具体算法与用户的解耦。

技术分享图片

public abstract class Strategy {

   public abstract void algorithmInterface();

}

 

public class ConcreteStrategyA extends Strategy {

   @Override

   public void algorithmInterface() {

      System.out.println("ConcreteStrategyA");

   }

 

}

 

 

public class ConcreteStrategyB extends Strategy{

   @Override

   public void algorithmInterface() {

      System.out.println("ConcreteStrategyB");

   }

}

 

 

public class Context {

   private Strategy strategy;

   public Context(Strategy strategy){

      this.strategy = strategy;

   }

  

   public void contextInterface(){

      strategy.algorithmInterface();

   }

}

 

public class TestDemo01 {

   @Test

   public void test01(){

      Context context = new Context(new ConcreteStrategyA());

      context.contextInterface();

     

      context = new Context(new ConcreteStrategyB());

      context.contextInterface();

   }

}

 

以上是关于设计模式-策略模式的主要内容,如果未能解决你的问题,请参考以下文章

策略模式(Strategy Pattern)

设计模式中的多态——策略模式详解

spring中如何使用策略模式

设计模式——策略模式

java设计模式---策略模式(案例解析)

设计模式策略模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )