switch
- if – else 只适宜在 3 层之内应用
-
当条件判断较多时, 能够首先思考应用 switch
interface
-
当判断条件还可能动静减少时, 能够思考将 switch 进一步优化, 引入接口 interface, 将 代码与数据拆散:
-
创立一个 map:
- key: switch 的 case 值
- value: 对应的实体类
- 形象出通用办法, 变成一个接口, 对立入参和返回值
- 主实现类 controller 类就是将 type 值传进去, 获取到对应的实现类, 而后调用形象进去的办法, 这样无论减少多少个case, 都不会扭转主逻辑代码
-
每个类独自实现接口, 互不影响
db setting
-
- 用 db setting 表的形式加载 type 对应的实体类
-
这样做到了 配置数据化
- 如果 case 中的实现类须要动态变化呢?
-
解决方案: 将 case 的实现用动静语言实现, 并且将代码写在 db 里
- db里保留的是代码
- 启动的时候初始化所有的实现类, 以节省时间
- 主实现类 controller 类里主逻辑代码不变, 但额定提供一个初始化 map 的办法
- 如果须要新增的 case 和实现类, 批改 db, 调用更新 map 的办法, 从新初始化(甚至能够写一个后盾编辑脚本公布的性能)
总结
- 架构设计和需要相干, 不仅要会技术, 还必须懂行业, 要晓得需要在可见的工夫里会变动到什么水平, 而后依据不同的水平来给出不同的计划
-
不要适度设计:
- 有计划不代表以后必须做, 能把设计提前比需要快一步, 就很好了
-
学会给本人的代码分级, 是让本人提高的最好的方法. 一个人的成长分为几个阶段:
- 面向性能编程
- 面向性能编程
- 面向复用编程
- 面向未来编程