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()
        }
    
    }
  • 相关阅读:
    经典语录一
    例子二
    例子一
    模板加载
    vim 程序编辑器
    文件与文件系统的压缩,打包与备份
    Linux 磁盘与文件系统管理
    文件与目录操作
    Linux 的文件/目录权限
    Linux 指令代码,热键以及文件放置安排
  • 原文地址:https://www.cnblogs.com/chylcblog/p/13932969.html
Copyright © 2011-2022 走看看