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

策略模式以及优化

使用场景

在一个条件语句中又包含了多个条件语句

具体策略类会过多

把抽象策略和具体策略放在一个枚举类里。

方法 exe() 相当于抽象策略,而A和B就相当于实现了抽象策略的具体策略
这样就只需要一个枚举类就可以解决具体策略类过多的问题

public enum Strategy {A{@Overridepublic void exe() {System.out.println("执行具体策略A");}},B{@Overridepublic  void exe() {System.out.println("执行具体策略B");}};public abstract void exe();}

彻底消除if else

Map<条件,具体策略>

完整代码

public enum Strategy {A{@Overridepublic void exe() {System.out.println("执行具体策略A");}},B{@Overridepublic  void exe() {System.out.println("执行具体策略B");}};public abstract void exe();}
public class Test {public static void main(String[] args) {Map<String, Strategy> map=new LinkedHashMap<>();map.put("A",Strategy.A);map.put("B",Strategy.B);String str="A";map.get(str).exe();}}

http://www.lryc.cn/news/511060.html

相关文章:

  • linux自动化一键批量检查主机端口
  • Vue3入门(9)
  • 《人工智能如何加速药物研发进程:从新药发现到临床试验的突破》
  • “鼎和财险一体化数据安全管控实践”入选信通院金融领域优秀案例
  • 探索多模态大语言模型(MLLMs)的推理能力
  • 72 mysql 的客户端和服务器交互 returnGeneratedKeys
  • 【连续学习之SSL算法】2018年论文Selfless sequential learning
  • 【蓝桥杯——物联网设计与开发】拓展模块5 - 光敏/热释电模块
  • 数字IC后端设计实现十大精华主题分享
  • 高质量配音如何影响游戏的受欢迎度
  • QWidget应用封装为qt插件,供其他qt应用调用
  • UE(虚幻)学习(四) 第一个C++类来控制小球移动来理解蓝图和脚本如何工作
  • 使用FreeNAS软件部署ISCSI的SAN架构存储(IP-SAN)练习题
  • Sql Sqserver 相关知识总结
  • 面试题整理17----K8s中request和limit资源限制是如何实现的
  • Spring Boot @Conditional注解
  • jpeg文件学习
  • c++基于过程
  • FOC软件 STM32CubeMX 使用
  • leetcode hot 100 全排列
  • 使用qrcode.vue生成当前网页的二维码(H5)
  • 0055. shell命令--useradd
  • blender中合并的模型,在threejs中显示多个mesh;blender多材质烘培成一个材质
  • vue 本地自测iframe通讯
  • C++:单例模式
  • SOME/IP 协议详解——信息格式
  • C# GDI+数码管数字控件
  • 在交叉编译中,常见的ELF(elf)到底是什么意思?
  • Unity开发AR之Vuforia-MultiTarget笔记
  • 深入解析 Oracle 的聚合函数 ROLLUP