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的办法,从新初始化(甚至能够写一个后盾编辑脚本公布的性能)
总结
- 架构设计和需要相干,不仅要会技术,还必须懂行业,要晓得需要在可见的工夫里会变动到什么水平,而后依据不同的水平来给出不同的计划
不要适度设计:
- 有计划不代表以后必须做,能把设计提前比需要快一步,就很好了
学会给本人的代码分级,是让本人提高的最好的方法.一个人的成长分为几个阶段:
- 面向性能编程
- 面向性能编程
- 面向复用编程
- 面向未来编程