当前位置: 首页 > news >正文

使用枚举来实现策略模式

  1. 使用很多if else的场景

    1. 	public void save(String type,Object data){if("db".equals(type)){saveInDb(data);}else if("file".equals(type)){saveInFile(data);}else if("oss".equals(type)){saveInOss(data);}}
      
  2. 使用枚举来解决

    1. public enum SaveStrategyEnum{DB("db"){@Overridepublic void save(Object obj){System.out.println("save in db:"+obj);}},FILE("file"){@Overridepublic void save(Object obj){System.out.println("save in file:"+ obj);}},OSS("oss"){@Overridepublic void save(Object obj){System.out.println("save in oss:" +obj);}};private String type;SaveStrategyEnum(String type){this.type = type;}public abstract void save(Object obj);public static SaveStrategyEnum typeOf(String type){for(SaveStrategyEnum strategyEnum : values()){if(strategyEnum.type.equalsIgnoreCase(type)){return strategyEnum;}}return null;}
      }public void save(String type,Object data){SaveStrategyEnum strategyEnum = SaveStrategyEnum.typeOf(type);if(strategyEnum != null){strategyEnum.save(data);}
      }
      
http://www.lryc.cn/news/464959.html

相关文章:

  • 区块链技术原理
  • Spring Boot 接口数据加解密
  • 2018年计算机网络408真题解析
  • Javascript 脚本查找B站限时免费番剧
  • YoloV10改进策略:主干网络改进|DeBiFormer,可变形双级路由注意力|全网首发
  • C#学习笔记(一)
  • MATLAB边缘检测
  • Tortoise SVN 安装汉化教程(乌龟SVN)
  • 深入了解Spring重试组件spring-retry
  • 海南聚广众达电子商务咨询有限公司靠谱吗怎么样?
  • Java的魔法世界:面向对象编程(OOP)是什么?
  • 软件测试笔记——接口测试
  • 东方通 TongRDS V2 配置与开机自启指南及 Spring Boot 集成
  • 在 VS Code 中调试 Tensor 形状不显示的问题及解决方案
  • Linux 时间获取全面总结
  • SQL 自学:游标(Cursors)的理解与应用
  • IO多路复用概述与epoll简介
  • 关于region_to_label算子的想法
  • uni-app 实现好看易用的抽屉效果
  • PowerShell 脚本 比较两文件差异(带粗狂进度条)并汇总输出
  • 学习 UE5 的一些前置操作总结
  • C#/.NET/.NET Core技术前沿周刊 | 第 10 期(2024年10.14-10.20)
  • Git 基本配置
  • 理工科考研想考计算机,湖南大学、重大、哈工大威海、山东大学,该如何选择?
  • 使用langchain和大模型API提取QA的实战教程
  • Java面试场景题(1)---如何使用redis记录上亿用户连续登陆天数
  • Element UI
  • ②PROFINET转ModbusTCP, EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关
  • python+Mosh网课笔记04
  • 【微服务】全面构建微服务监控体系:确保系统稳定与性能优化的关键