概述
程序中 if else 的判断本质是 条件和执行
。
- 匹配:就是指条件判断,返回的值为 true, 比如:
if(true)
,if("a".equals("b"))
等 - 执行:就是指符合条件判断后需要执行的代码
基于对 条件和执行
的认识,可以从结构上对程序进行改造,可以将 匹配 和 执行的部分拆开。
关键点
条件和执行
逻辑上分离,有助于代码解耦- 条件可以通过 list 和 map 封装,借助 list 的遍历和 map 的 hash 来找到需要执行的代码
- 执行的部分一般实现了函数式接口
条件和执行
在 spring boot 项目中可以通过@Configuration
进行初始化
具体做法
- 通过 list 结构
- 通过 map 结构
- 在 spring boot 项目中的应用
通过 list 结构
- KeyValuePair 类,封装了
条件和执行
逻辑
1 | @Data |
- 订单实体类
1 | @Data |
- 通过 list 来封装整个订单处理逻辑
1 | @Test |
通过 map 结构
- 通过 map 来封装订单处理逻辑
1 | @Test |
在 spring boot 项目中的应用
- 通过
@Configuration
类将订单处理逻辑 map 注册到 ioc 容器中,具体如下
1 | package com.ckjava.test.config; |
- 在 controller 中的使用如下
1 | package com.ckjava.test.web; |