我是如何接触到设计模式的
我是在大学课堂上第一次了解到设计模式的,在学习之初我觉得设计模式解决问题的方式非常巧妙,但随着时间推移,我越发觉得很难将课堂上学到的知识落地到实际应用中。
其实不只是大学课程,市面上部分书籍也比较偏重概念和理论的讲解,喜欢拿猫、狗、鸟之类的生活中的例子来举例。虽然这样能在较短时间内让我理解设计模式的原理,但同时也背离了真实的软件开发,很难将学到的理论知识运用到开发实践中去。
在意识到设计模式似乎无法为我提供行之有效的落地指导后,我就转变为面向期末考学习设计模式了。
正确认识认识设计模式
简单讲,设计模式是针对软件开发中经常遇到的一些设计问题,总结出来的一套解决方案或者设计思路。大部分设计模式要解决的都是代码的可扩展性问题。
然而,过早的陷入到具体知识的学习中并没有什么好处,这样的学习方式很容易造成“不识庐山真面目,只缘身在此山中。”这样的情况。你要意识到,设计模式只是“术”,设计原则才是“道”。这里我摘抄了一段来自百度百科关于设计模式的描述。
软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。
实际上,面向对象、编程规范、代码重构、设计原则、设计模式等等,这些都是保持或者提高代码质量的方法论,本质上都是服务于编写高质量代码这一件事的。当我们追本逐源,看清这个本质之后,很多事情怎么做就清楚了,很多选择怎么选也清楚了。比如,在某个场景下,该不该用这个设计模式,那就看能不能提高代码的可扩展性;要不要重构,那就看重代码是否存在可读、可维护问题等。
我是如何学习设计模式的
我在学习设计模式之初是先由理论入手,比如大学课堂,亦或是侧重理论说明的书籍。比如程杰的《大话设计模式》
先建立原理与代码实现上的初步认知,再刷王争的《设计模式之美》,学习如何将原理性的知识落地到实际的编码开发中去。
最后,借由前人的智慧,总结出属于自己的知识网络,梳理并记录下来。
对于我来说,这是最适合我的学习方式,你在学习过程中可以借鉴我的思路,也许不一定适合你,但起码可以起到抛砖引玉的作用。
祝你乘风破浪
在技术这条道路上,数据结构/算法和设计模式都属于最底层的基础知识。在逐渐熟悉开发的工作后,你会学到不同的编程语言和各自语言生态中的开发框架,你要知道,这些框架无论再好用,设计的再巧妙,那也都是“术”的层面。如果理论基础没有打牢,即便“术”修炼到很高的层次,那也不过是工具的使用者。摆在你面前的也许是一台精密的战斗机,但由于见识不够,你几乎无法领略这台战斗机美在什么地方。再说一句老话:“万丈高楼平地起”,地基不牢,装修学的再好也只是空中楼阁。
最后,祝你在技术这条路上能走的更远。注定不能一帆风顺的人生,就不祝你万事如意了,我祝你乘风破浪!
