设计模式的思考

80 阅读2分钟

这是我参与8月更文挑战的第20天,活动详情查看:8月更文挑战

已经有无数文章写过关于设计模式的解析了,这里特指Java的设计模式,可能本来设计模式是为了面向对象的语言设计的,但好像除了Java,其他的oop语言占有率都不是特别高。设计模式你不能把它当作一个知识点,它更多的是一种技巧,可以辅助你看懂代码,然后写出更好的代码的一种技巧。也可以认为是一种基本功。

但随着微服务的兴起,我从业这几年很少能在项目中看到有代码用过设计模式了,甚至工厂都不用了。首先设计模式的提出是为了解决大型项目的代码扩展性和可维护性的,通俗的说就是让代码变的人类看得懂、能迭代。像很多常用的框架里面,都是遍地设计模式。这又带来一个问题,不怎么用设计模式的开发人员很难看懂作者的意,一个类被实现N次,继承N次到底是为了什么?设计模式有时候都成了面试的考点之一,倒是也可以理解。

有一段时间,我突然发现我的代码水平一直在原地踏步,首先这肯定不是Java这门语言的天花板,那就是我自己没有进步很久了,于是我就请教一些前辈,希望能推荐一个能学习的开源框架,让我能读一读源码,提升自己。前辈只说了一个东西:netty。于是我就兴奋的去clone了netty的代码,打开一看,抓瞎。回过神来,看了一些书,了解了netty的体系结构之后,继续往下看确实能看进去一些,但还是对它那样的实现方式很疑惑不解。后来也找到了答案,我没有设计模式的思想。

所以设计模式意味着什么呢?是在长期的生产劳动过程中总结技巧和经验,要么就是性能更好,要么就是扩展性高,要么就是结构更清晰。遵循这些模式写出来的代码是赏心悦目的,无用的代码更少,性能也更高。