• 设计模式随笔(八):策略模式


    概述

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

      客户端增加行为不用修改源代码,只需要添加一个子类,可以减少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()
        }
    
    }
  • 相关阅读:
    为没有源码的DLL文件添加强名称
    部署.Net Core APi+Vue 到 linux centos 服务器(一)
    安装nginx
    Linux常用命令大全
    Linq 根据list属性去重复
    jQuery Validate验证框架详解
    mysql+C#
    微信支付配置参数
    自定义截取数,截取字符串,返回字符串数组。
    Git GUI基本操作
  • 原文地址:https://www.cnblogs.com/chylcblog/p/13932969.html
Copyright © 2020-2023  润新知