在我第一年开始做程序员结束,我就听说过“设计模式”的大名,心里以为这是一个什么神功秘笈,于是就跑到书店买了一本。可是从头到尾硬着头皮看完一遍之后,完全不知道是在说什么。
刚学编程的时候,比较大的兴趣,都在于学习如何使用各种库、API、框架。因为这些知识能让我们从“不能”变成“能”完成某些事情,对于具体要怎么写代码才是“好”的,确没有太大的兴趣。等到被屎山代码折磨的足够难受之后,我才隐隐的明白,代码写的“好”也是很重要的。在多年之后,我真正看懂的第一本介绍设计模式的书,反而是《JAVA与模式》。——由于已经写了比较多的 Java 代码,所以看了之后,才明白:设计模式是一种“经验”,而不是一种“实现方法”。
但是,在学习设计模式之前,必须要有比较完整的面向对象的理解。面向对象编程关于“怎样设计是好的设计”,其实是有一系列的经典理论和原则的。我觉得说明的最简洁的是这本《架构整洁之道》。另外,我也读过一本介绍类似概念,但内容更容易看懂:《Head First 面向对象分析与设计》——这本书不知道为啥好像卖的不怎么样,不太好搜索到,不过内容我倒觉得挺不错的。
这几条内容,既是日常我们设计代码所要追求的目标,也是“设计模式”之所以能形成“模式”的原因:很多程序员为了达成上述目标,面对一些典型的需求情况下,所总结出来的经验,或者叫套路。
这本书虽然里面有大量的“代码规范”的内容,但是里面也有相当多的针对面向对象设计的基础 原则。特别适合于需要编写“库”或者“框架”的人参考,毕竟 .NET 也是一个应用非常广泛的框架。虽然我之前 C# 的工作机会不算多,但是就算以 JAVA 或者 C++ 的角度来看,能如此丰富全面的教你写一个框架/库的书也挺难得。
由于《设计模式》不是一种关于“如何实现功能”的知识,而是关于“怎样写代码更好”的经验,所以实际上这种经验,是跨越编程语言的一种思想。不过,如果第一次要学,还是需要通过自己最熟悉的语言,找一本对应的书去仔细看,才更好入门。下一篇,我打算写一点我所认识的设计模式,特别是在游戏领域,设计模式的应用情况。
评论区
共 3 条评论热门最新