什么是设计模式
设计模式说起来非常高大上,什么为代码提供标准、增加稳健性和可复用性。但其实归根结底就俩字——“套路”,准确地来说就是程序员写代码的“套路”。这套路其实就是总结出别人的代码经验,用来帮助我们设计出更好的代码。但是,“套路”是不是一定要遵循呢?也不一定,设计模式其实更多是为你提供一种思路,但正如“尽信书不如无书”,事实上目前常见的23个设计模式大多数已经是90年代的产物——当然,并不是说老的东西不好,但有一部分确实目前已经弃用了。所以在学习过程中,不必追求面面俱到(有些模式几乎真的没人用),个人感觉把它当做一个提升代码的练习即可。
![](https://img-blog.csdnimg.cn/20201215225027827.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3BlaW5iaWxs,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20201215225114920.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3BlaW5iaWxs,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20201215225202140.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3BlaW5iaWxs,size_16,color_FFFFFF,t_70)
什么时候适合学设计模式
其实笔者十分反对初学者学习设计模式,原因2个:1、很难学懂;2、学了也没用。笔者曾经在一年前刚把java入门后花了很大力气过了一遍设计模式。然后.........就没有然后了.......
后面代码稍微写多了,设计模式看起来才稍微有点感觉。所以,如果真的要学,强力建议最起码要有半年甚至一年天天写代码的经验后才开始入手。
这样才能真正地事半功倍!
为什么我要写这个?
因为开心.........(主要是最近比较闲,知识又有点忘了,做个笔记记录一下)
学习资料推荐
可能很多人学设计模式都会首推这本《设计模式:可复用面向对象软件的基础》这本巨牛之作,没毛病,有且只有一个缺点——很难读下去,毕竟大多数人离巨牛的距离相差太远了。所以,我更推荐以下3个学习资料:
1. https://www.journaldev.com/1827/java-design-patterns-example-tutorial
推荐指数:5星推荐,而且刚好用语言也是本人常用的Java。其实本人设计模式就是根据这个blog进行一步步学习,本系列的blog更多来讲只是对这系列blog进行二次解读和加入自己的思考。建议英文好的童鞋直接啃生肉。
2. 《Head First 设计模式》
推荐指数:3星推荐,非常非常容易看懂,唯一的缺点在于Head First系列的书真的太啰嗦了(反正我至今卡在200多页,有时间再慢慢看吧)
3. https://refactoring.guru/design-patterns/builder
推荐指数:3星,前单位同事5星安利给我的,然而当时我已经在啃1的资料了,再加上这demo不是用java,3星吧
全局资料汇总:
本系列的讲解将会根据这张脑图的顺序和结构进行。
代码:
https://github.com/peinbill/designPattern_learning
对应的脑图链接:
链接:https://pan.baidu.com/s/1V1e7B4bWKdmAtbw43_vTlw
提取码:1234
复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V4的分享
参考:
【1】如何看待知乎、饿了么后端的招聘纷纷由 Python 渐渐转向 Java? - 曲奇的回答 - 知乎 https://www.zhihu.com/question/56468869/answer/261050848