设计模式简介

2025-05-28

设计模式简介

我讨厌那种对某事一无所知的感觉。

这就是冒名顶替综合症的根源。

当我的队友说“哦,只需使用 X 模式”时,我有这种感觉,但我不知道那是什么。

这就是为什么我研究并搜索互联网上有关设计模式的各种资源。

我将把它们全部混合到这个设计模式系列中。

这是本系列的第一篇文章,我们将讨论:

  • 什么是设计模式?
  • 设计模式的历史
  • 你为什么要学习它们?
  • 不同类型的设计模式

设计模式

替代文本

如果你用谷歌搜索设计模式,你会得到类似这样的结果:

在软件工程中,软件设计模式是针对软件设计中特定环境中常见问题的通用、可重用的解决方案。它并非可以直接转换为源代码或机器码的最终设计。

老实说,这听起来太复杂了。

简单来说,设计模式是软件设计中常见问题解决方案。你可以把它们看作是蓝图,可以自定义来解决代码中反复出现的问题。

模式并非是可以简单复制的代码片段。模式提供的是通用的解决方案,您可以遵循并修改该解决方案以满足特定应用的需求。

模式常常与算法混淆,它们实际上都为常见问题提供了解决方案。算法提供了解决方案的逐步指导,而模式则提供了解决方案的高级概念。

模式的历史

模式不仅应用于软件领域,也应用于其他工程领域。模式可以简单地理解为针对某个重复问题的通用解决方案,这种描述可以应用于许多不同的领域。

模式的概念最早由一位名叫克里斯托弗·亚历山大的工程师在土木工程领域提出。在设计建筑物和城镇的过程中,他发现了许多反复出现的问题,并提出了一些通用的解决方案。他把自己的经验记录在《模式语言:城镇、建筑、施工》一书中。

值得注意的是,软件开发人员也采用了同样的想法:

  • 埃里希·伽马
  • 约翰·弗利斯赛德斯
  • 拉尔夫·约翰逊
  • 理查德·赫尔姆

1994年,他们撰写了第一本关于软件设计模式的书,名为《设计模式:可复用面向对象软件的元素》。本书介绍了23种解决面向对象设计各种问题的模式。由于书名过长,人们开始称之为“四人帮之书”,后来简称为“四人帮之书”。

我为什么要学习模式?

我个人认识很多开发人员,他们不懂任何模式,但工作却“勉强过得去”。很多开发人员都是这样。他们甚至可能在不知情的情况下就实现了某些模式。那么,学习这些所谓的“模式”有什么意义呢?

  • 设计模式是解决常见问题的工具包。即使你永远不会遇到这样的问题,了解如何使用面向对象的设计原则来解决它们仍然大有裨益。
  • 它为开发人员提供了一种通用语言。您可以直接跟同事说:“哦,用单例就行了”,大家都能理解。如果您已经了解单例模式,就无需解释它了。

设计模式的类型

模式可以根据其意图或目的进行分类。模式主要分为三类:

  • 创建模式:帮助我们更好地创建/实例化对象,使其更加灵活并减少代码重复。
  • 结构模式:帮助我们将对象组合成更大的实体,同时保持灵活性和效率。
  • 行为模式:帮助我们进行对象之间的沟通,确保减少副作用。

结论

我希望读完这篇文章后,你能被说服去学习设计模式,或者至少去思考一下。接下来的几周,我会专门写一篇关于特定模式的文章,敬请期待。

与往常一样,如果您有任何问题,请随时在评论中留下,我会回复您。

文章来源:https://dev.to/tamerlan_dev/introduction-to-design-patterns-540o
PREV
让你成为更优秀开发人员的项目构想
NEXT
如果我告诉您复杂的数据集成可以实现良好的任务编排,您会怎么想?