• 设计模式(一) 策略模式


    设计模式

    (一)策略模式

    简介:

    关于策略模式,之前知道了一个大概,实际上没有使用过,今天通过一个demo来再次加深一下学习。

    strategy_pattern_uml_diagram

    在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式

    在策略模式中,我们通过创建 **表示各种策略的对象 **和一个 **行为随着策略对象改变而改变的 context 对象 **。策略对象改变 context 对象的执行算法。

    需要创建的类:

    • 一个接口:用于约束

      public interface Strategy{ 
      	public String doOperation();
      }
      
    • 多个策略类

      public class Operation1 implements Strategy{
          //策略1
          @Override
         public String doOperation() {
            return "这是策略1";
         }
      }
      
      public class Operation2 implements Strategy{
          //策略2
          @Override
         public String doOperation() {
            return "这是策略2";
         }
      }
      
    • 一个context类,用于切换策略

      public class Context {
         private Strategy strategy;
       	
         public Context(Strategy strategy){
            this.strategy = strategy;
         } 
          
         //执行策略
         public String executeStrategy(){
            return strategy.doOperation();
         }
      }
      
    • 创建一个Demo 在 main 函数中演示一下:

      public class StrategyPatternDemo {
         public static void main(String[] args) {
            //创建context 使用策略1,调用context中的执行策略方法
            Context context = new Context(new Operation1());    
            System.out.println( context.executeStrategy() );
            //创建context 使用策略2,调用context中的执行策略方法
       	  context = new Context(new Operation2());    
            System.out.println( context.executeStrategy() );
         }
      }
      
    • 结果为:

      这是策略1
      
      这是策略2
      
  • 相关阅读:
    抓取用户openid
    getaccesstoken方法
    https_request请求接口返回数据
    composer安装
    Linux下mysql数据库root无法登录的情况
    nginx安装
    shell脚本采用crontab定时备份数据库日志
    Python之元类详细解析
    Python面向对象之封装、property特性、绑定方法与非绑定方法
    Python之面向对象的组合、多态、菱形问题、子类中重用父类的两种方式
  • 原文地址:https://www.cnblogs.com/siten0616/p/14134374.html
Copyright © 2020-2023  润新知