LLD 设计模式: 每个设计模式包含的四事

2026年8月8日1 次浏览来源:Dev.to阅读原文

在前几篇文章中,我们回答了一些根本性的问题。

我们学到了:为什么设计模式存在,为什么它们不是可再使用的代码,为什么经验丰富的工程师会识别出模式而不是记忆.

现在,我们准备好 一个重要的转变。

从此开始学习个人设计模式.

在我们这样做之前,有一个技能,可以使每一个未来的模式都更容易理解.

每个设计模式可以通过回答相同的四个问题来理解.

一旦你学会了这四个问题, 你不必单独记住规律。

相反,你会知道如何阅读任何图案描述, 无论是从一本书,文档,还是采访问题。

为何Beginners Find Design Pattles Overwhiming 想象首次打开了"设计图案"一书.

你可以看到一些术语,比如: Singleton Factory 方法适应器策略观察者代理访问者 每一章看起来都不同.

每个UML图看起来都不同.

每个例子都使用不同的类.

感觉你正在学习23个无关的概念 这是因为大多数初学者都专注于执行.

经验丰富的工程师把注意力集中在简单得多的东西上.

他们每次都问同样的四个问题。

每个设计模式背后的四个问题 每次遇到新的设计模式时,请自问: 这四个问题对应于每个设计模式的四个基本部分: 问题有意解决的后果 各各明说.

1.

问题——为什么这种模式存在?

每个设计模式都从一个问题开始.

不是生意问题 一个设计问题。

例如:对象创建变得复杂了.

不同的算法不断改变.

部件紧密地结合在一起。

外部系统有不相容的接口.

新的特性需要修改现有的类别。

注意重要的东西 模式没有出现,因为有人想发明出一个聪明的设计.

出现的原因是软件团队反复面临同样的工程挑战.

每当你研究一种新的模式时,你的第一个问题是:是什么反复出现的设计问题使得这种模式是必要的?

如果你跳过这个步骤,图案就变成了记忆而非理解的东西.

2.

意图——模式试图实现什么?

一旦问题清楚,下一个问题是: 总体目标是什么?

这被称为图案的意向.

以为一刑之用.

例如:简化对象创建,单独改变行为,允许不相容的系统一起工作,减少耦合,动态地增加功能.

意图并不能解释执行.

它只是告诉你 模式正在试图实现。

思考这个问题的一个有用方法是:3.

解决办法——模式如何解决问题?

直到现在,我们才问:模式如何真正解决问题?

这是许多初学者跳到第一位的部分。

他们立即开始研究UML图和代码.

经验丰富的工程师则相反.

一旦他们理解问题和意图,解决方案就更容易被理解.

解决方案通常描述:参与对象,他们的责任,他们如何合作,设计如何组织.

注意解决方案不是代码模板 。

不同的编程语言将不同地执行相同的模式.

重要的部分是基础设计理念.

4.

后果——我们获得什么,我们牺牲什么?

每个工程决策都涉及取舍.

设计模式也不例外。

一个模式通常在引入另一个考虑的同时解决一个问题.

例如:增加类,增加抽象,增加复杂性,增加间接性,提高灵活性.

经验丰富的工程师从不问:"这个模式好么?

相反,他们问:"这种取舍对于我的系统来说是值得的吗?" 所以"后果"一节与"解决"一节同等重要.

忽视贸易

分享