zoukankan      html  css  js  c++  java
  • 设计模式随笔(八):策略模式

    概述

      策略模式是对具体算法和逻辑的包装,把使用算法的责任和算法本身分开,系统可以在对应情况下动态选择集中算法中的一种,实现某个特定功能。

      客户端增加行为不用修改源代码,只需要添加一个子类,可以减少if else的使用。

    UML

      Context(上下文对象):持有Strategy的上下文对象,调用opration方法的实际位置

      Strategy(抽象策略角色):抽象角色,给出所有的具体策略所需的接口

      Strategy_1,Strategy_2,

      

      

    创建Strategy接口

    public interface LogStrategy{
      
        void printLog();    // 日志打印接口
        
    }
    

      

    实现类1

    public class InfoLog implements LogStrategy {
    
        @override
        public void printLog() {
            log.info("打印正常日志");
        }  
    
    }

    实现类2

    public class ErrorLog implements LogStrategy {
    
        @override
        public void printLog() {
            log.error("输出错误日志");
           // 发送告警邮件给码农
          // ... ...
        }  
    
    }
    

      

    上下文调用

    public class Client {
    
        public static void main(String[] args) {
            //选择并创建需要使用的策略对象
            LogStrategy strategy = new InfoLog();
            strategy.printLog()
        }
    
    }
  • 相关阅读:
    ls: cannot open directory .: Permission denied
    postman报错:Could not get any response
    IO流的继承关系
    吸顶效果
    linux报错:ls command not found
    内存寻址能力与CPU的位宽有关系吗?
    CPU与内存
    SQL语言的分类
    32位CPU和64位CPU 区别
    linux添加环境变量
  • 原文地址:https://www.cnblogs.com/chylcblog/p/13932969.html
Copyright © 2011-2022 走看看