最近由于工作变动,对JAVA使用较多,其中某些功能点需要大量的规则匹配,起初为了功能的快速实现,采用了大量的if-else分支进行逻辑判断。代码效率且不去说,单是看着就很头疼,像极了一坨屎。由于很多逻辑近似,Ctrl+C ,Ctrl+V的操作较多,写到后来自己都有点迷糊,是不是有些规则忽略了?有没有没想到的分支? (后来重构的确发现有忽略的地方) 由于项目初期,能够遇到的规则有限,所以将常用的规则测试完后,预留的那些有心去做测试,但是看着那一堆堆的还带有嵌套的if-else实在是提不起兴趣就暂且认为没有问题好了。 (遇到了再改嘛,#手动滑稽)
功能实现得闲之后便开始思索如何优化,虽说之前的工作中JAVA也会偶尔使用,也仅限于工具类、三方接口的调用等,对于他的面向对象特性用之甚少,面向对象的设计模式就更是知其名不知其所以。查找大量if-else分支优化方法时,发现可以使用策略+工厂的方式去优化,于是开始了设计模式的学习之旅。
设计模式的学习主要是通过程杰的《大话设计模式》一书,采用菜鸟和大神的对话的方式由浅及深的对设计模式进行了通俗易懂的解读和教学。对比网络上的水文,到处都是复制粘贴迹象,千篇一律的,个人比较推荐阅读此书的方式。
这个专栏主要是我个人的一些学习经验,结合实际工作中用到的场景,并使用JAVA语言对学到设计模式进行实现,目标是学完书中所有模式,但更多的模式,目前的工作场景或许并不会用到,争取利用空闲时间也实现一遍,也算是加深印象。