最近开始把几年前关于设计模式的笔记逐步整理出来,并且分享给大家。讲设计模式的书籍、视频比比皆是。这次我针对每一个设计模式分为五个方面进行介绍:
- 什么是 X 设计模式?(是什么?)
- 为什么用 X 设计模式?(为什么?优势)
- 如何用 X 设计模式?(怎么用?使用简单的代码示例演示该设计模式的使用方式)
- 是否存在缺陷和不足?(设计模式不是万能的)
- 如何缓解缺陷和不足?(方法永远比问题多)
基于以上五个方面已经介绍了一些设计模式,有一些朋友问:作为初学者应该如何学习设计模式?今天我会从我的学习过程、我对下属的培养过程,给出我对设计模式学习的建议。
在讲之前我有一个前提先同步大家:设计模式不是万能的,用就好好用,如果用不好,不如不用!
一、理论准备
- 学习并掌握基本的编程知识:如果一个人连最基础的编程知识都没有,那就不要学习设计模式了。学也学不会的。这块主要要对编程语言,比如 Java,以及面向对象编程的知识有一定的了解和掌握,这样才能更好地开始学习设计模式。
- 学习并掌握设计原则:这部分的内容我前面都有详细介绍过,一般书本讲的都是 SOLID 原则,在这个基础上提出了软件设计七原则,包括 SOLID + CARP + LoD,建议使用我的内容好好学习掌握。
- 学习并掌握设计模式:找一本设计模式的书、视频或者我这个系列的也可以,你如果有一个理论指导,然后针对每一个设计模式去理解他的原理和实际应用的场景。先从常用的简单的开始,这样学习才能持续下去。当然你学习过程中有什么问题欢迎和我交流。
二、辅助学习
- 找寻优秀的设计模式实例进行学习:比如 Spring 中单例模式的使用,很经典,我经常和我的下属们说,这部分的源码好好啃下去,对单例的理解程度会晋级的。这部分代码不难找,网络上介绍的有很多。
- 善于使用工具来深化学习程度:有一些设计工具能帮助你在学习的过程中更好地理解设计模式,比如一些设计模式的可视化工具、UML 制图工具等,可以尝试地用起来,画起来。
- 善于利用博客、社区、公众号资源:这个就不多少了,不仅是通过这些渠道看理论、看代码示例,更多地是看别人是如何学习的,分享学习的经验、交流学习的教训。
三、动手并持续
- 动手实战:学任何技术不动手是学不会的,关于设计模式的学习也是一样的,你要动手去写才行,这又两种模式,一种是自己写,一种是在实际项目中去写,只有通过多用才能更好地掌握,但是别忘了我开篇的前提,而且在用的过程中,要注重在实际场景中你使用何种设计模式解决问题的思考过程。
- 重复学习和持续实践:关于技术的学习不是用一次就掌握的,理论也不是看一遍就理解的,必须是一个重复学习的过程,也必须是一个持续实践的过程。
要记住,设计模式,它是解决特定问题的通用模板,但并不是所有问题都需要设计模式。
在实践中,根据具体情况灵活运用设计模式,并在不断的实践中逐渐提高你的设计水平。
以上是我的一些建议和看法,希望可以帮到你。