Design patterns 在阅读源代码时,如何识别设计模式?

Design patterns 在阅读源代码时,如何识别设计模式?,design-patterns,Design Patterns,有没有办法更好地识别源代码中的设计模式,特别是在您不熟悉所有模式的情况下?识别它们的最佳方法是什么?你是什么意思?你通过了解它们来识别它们,然后看到其中一个的迹象,然后把它们组合在一起 有时名称是指示性的,foodfactory,等等 没有“魔法”。我不太明白这个问题的重点…设计模式是一段代码/架构,旨在解决某个问题,它非常有用,并且抽象地适用于其他领域的相同问题。如果您看到在多个地方使用相同类型的代码/架构,它可能是一种设计模式,尽管不一定是一种设计模式为我们提供的最重要的东西之一是更统一的词

有没有办法更好地识别源代码中的设计模式,特别是在您不熟悉所有模式的情况下?识别它们的最佳方法是什么?

你是什么意思?你通过了解它们来识别它们,然后看到其中一个的迹象,然后把它们组合在一起

有时名称是指示性的,
foodfactory
,等等


没有“魔法”。我不太明白这个问题的重点…

设计模式是一段代码/架构,旨在解决某个问题,它非常有用,并且抽象地适用于其他领域的相同问题。如果您看到在多个地方使用相同类型的代码/架构,它可能是一种设计模式,尽管不一定是一种

设计模式为我们提供的最重要的东西之一是更统一的词汇表。任何使用特定设计模式的(编写良好的)代码都应该在某个地方标识该模式的名称。

我将从熟悉开始。模式将改善/消除代码气味是非常典型的。另一个有一些实际工作例子的好资源是这本书。这本书展示了带有气味的代码以及如何用模式修复它们。

如果我的问题不太清楚,很抱歉。我想知道是否有一种方法可以更好地对行为、结构等模式进行分类,并将其缩小到准确的模式。我问这个问题是作为一个初学者学习模式,对它们不太熟悉,我必须在短时间内确定一些。@jasonline:我不知道有任何工具是用来确定正在使用什么设计模式的。我想写这样的东西是可能的。也许会很有趣,也许不会。但没有办法确定“模式”而不是“代码”。模式只是编写代码的方式;所以你可以在你的大脑中检测到它们,或者把你的大脑经过的过程写进代码,然后开发一个工具来实现:)我明白了,我想你最好先熟悉一下,然后才能识别一个,而不是反过来。