1、为何我们要学习设计模式
设计模式和操作系统、组成原理、编译原理等这些基础学科是不一样的。它 虽然也算是一门基础知识,但是它和数据结构、算法更像是一道儿的,相比那些更加基础的 学科,设计模式能更直接地提高你的开发能力 . 说数据结构和算 法是教你如何写出高效代码,那设计模式讲的是如何写出可扩展、可读、可维护的高质量代码 .
2、设计模式应用场景
2.1、面试
设计模式问题是被问 得频率比较高的一类问题。特别是一些像 BAT、TMD 这样的大公司,比较重视候选人的基 本功,经常会拿算法、设计模式之类的问题来考察候选人。 所以,我在求职面试的时候,都会提前准备、温习一遍设计模式
2.2、指导别人自己代码如何简洁优秀的写代码
我们经常说,“Talk is cheap,show me the code。”实际上,代码能力是一个程序员最 基础的能力,是基本功,是展示一个程序员基础素养的最直接的衡量标准。你写的代码,实 际上就是你名片
2.3、 提高复杂代码的设计和开发能力
如何分层、分模块?应该怎么划分类?每个类应该具有哪些属性、方法?怎么设计类之间的 交互?该用继承还是组合?该使用接口还是抽象类?怎样做到解耦、高内聚低耦合?该用单 例模式还是静态方法?用工厂模式创建对象还是直接 new 出来?如何避免引入设计模式提 高扩展性的同时带来的降低可读性问题?……各种问题
2.4、 让读源码、学框架事半功倍
有些人看源码的时候,经常会遇到看不懂、看不下去的问 题。不知道你有没有遇到过这种情况?实际上,这个问题的原因很简单,那就是你积累的基 本功还不够,你的能力还不足以看懂这些代码
优秀的开源项目、框架、中间件,代码量、类的个数都会比较多,类结构、类之间的关系极 其复杂,常常调用来调用去。所以,为了保证代码的扩展性、灵活性、可维护性等,代码中 会使用到很多设计模式、设计原则或者设计思想。如果你不懂这些设计模式、原则、思想, 在看代码的时候,你可能就会琢磨不透作者的设计思路,对于一些很明显的设计思路,你可 能要花费很多时间才能参悟。相反,如果你对设计模式、原则、思想非常了解,一眼就能参 透作者的设计思路、设计初衷,很快就可以把脑容量释放出来,重点思考其他问题,代码读 起来就会变得轻松了
2.5、 为你的职场发展做铺垫
代码质量低还会导致线上 bug 频发,排查困难。整个团队都陷在成天修改无意 义的低级 bug、在烂代码中添补丁的事情中。而一个设计良好、易维护的系统,可以解放 我们的时间,让我们做些更加有意义、更能提高自己和团队能力的事情
2.6、 重点回顾
- 应对 面试中的设计模式相关问题
- 告别写被人吐槽的烂代码
- 提高复杂代码的设计和开发能力
- 让读源码、学框架事半功倍
- 为你的职场发展做铺垫