何时使用哪种devise模式?

我非常喜欢devise模式,但我很难看到什么时候可以应用它。 我已经阅读了很多devise模式解释的网站。 我理解他们中的大多数,但是我发现很难在我自己的情况下认识到一种模式。

所以,这就是为什么我问这个问题。 当使用哪种devise模式时,是否有任何指导/警告铃声?

例如,如果您正在执行switch语句以确定需要创build哪个对象,则可能需要使用工厂devise模式。 所以这种情况下的switch语句是使用Factory模式的“警钟”。

那么,你知道更多的“警钟”来确定一个devise模式吗?

对于初学者只是看看这个网页: http : //codebetter.com/jeremymiller/2006/04/11/six-design-patterns-to-start-with/

虽然杰里米在这里处理了一些模式,但你必须阅读这些文章,然后按照以下步骤进行: http : //codebetter.com/jeremymiller/2005/09/01/learning-about-design-patterns/

也可以参考这篇文章(特别是Eric Gamma的采访),你应该设置。

通常这个过程是相反的。 不要去寻找使用devise模式的情况,寻找可以优化的代码。 当你有代码,你认为是不正确的结构。 试图find解决问题的devise模式。

devise模式旨在帮助您解决结构性问题,不要为了能够使用devise模式而去devise应用程序。

学习它们,慢慢地,你将能够重新思考并确定何时使用它们。 从一些简单的东西开始,如单身模式:)

如果你想创build一个对象的实例,只有一个。 你使用单身模式。 假设你正在制作一个带有选项对象的程序。 你不需要其中的几个,这将是愚蠢的。 辛格尔顿确保永远不会有多于一个。 辛格尔顿模式很简单,使用很多,真的很有效。

我完全同意@Peter Rasmussen。

devise模式为常见的devise问题提供了一般解决scheme。

我想请你按照下面的方法。

  1. 了解每种模式的意图
  2. 了解每个模式的清单或使用案例
  3. 考虑解决您的问题,并检查您的解决scheme是否属于特定模式的清单
  4. 如果不是这样,只需忽略devise模式并编写自己的解决scheme。

有用的链接:

源代码 :用C ++和Java等多种语言精美地解释目的结构清单

维基百科 :解释包括C#和Java在内的多种语言的结构,UML图和工作示例。

在每个sourcemakdingdevise模式中的检查清单经验法则提供您正在寻找的阿拉姆钟。

虽然一个老的线程,如果你正在寻找.NET的东西,使用这个非常有用的文章在C#中的.NETdevise模式,它展示了如何在现实世界中使用它们。 HTH!