如果说数据结构与算法的训练是教会了我们如何写出高效的代码,那么设计模式则是培养了我们如何写出高质量代码的能力。这两门课是训练一个工程师最基本的代码能力的课程,所以应该给予高度重视,在准备正式学习设计模式之前,我准备先把设计模式的知识架构拆分出来,力求这次的学习能够系统,扎实,早日享受到扎实的基础知识带来的”复利“。
设计模式分为五大部分
想要编写高质量的代码,我们就需要学习一些编程的方法论,包括有面向对象的编程风格,设计原则,设计模式,编程规范,重构技巧这五大部分。
面向对象的编程风格
现在主要的编程风格有三种,它们分别是面向过程,像c语言。面向对象,像c++,java。和函数式编程。其中面向对象这种风格是最主流的,编程语言大部分都是面向对象编程语言。面向对象编程有封装,继承,多态,抽象的特性,是很多设计原则,设计模式编码实现的基础。
设计原则
设计原则是指导我们代码设计的经验总结。包括SOLID原则,DRY,KISS,YAGNI,LOD原则。指导我们去应用合适的正确模式。
设计模式
设计模式是针对软件开发中经常遇到的设计问题,总结出来的一套解决方案。分为创建型,结构性,行为型这三大类。总共23种。大部分设计模式要解决的都是代码的可扩展问题。面试中常常问到的大概是创建型中单例模式和工厂模式。
编程规范
编程规范解决的是代码的可读性问题,更加偏重代码细节。这些规范都是死的,照着做弄熟练就完事。计划购买《重构》,《代码大全》,《代码整洁之道》。
重构技巧
在软件开发中,只要软件在不停地迭代,就没有一劳永逸的设计。随着需求的变化,代码的不停堆砌,原有的设计必定会存在这样那样的问题。针对这些问题,我们就需要进行代码重构。重构是软件开发中非常重要的一个环节。持续重构是保持代码质量不下降的有效手段,能有效避免代码腐化到无可救药的地步。而重构利用的就是面向对象、设计原则、设计模式、编码规范这些理论。