关于c#:何时使用哪种设计模式?

When to use which design pattern?

我非常喜欢设计模式,但我发现很难看到什么时候我可以应用它。我读过很多网站,其中解释了设计模式。我确实了解其中的大部分,但我发现在我自己的情况下很难识别出一种模式。

所以,这就是我问这个问题的原因。当使用哪种设计模式时,是否有任何指南/警铃?

例如,如果您正在执行switch语句来确定需要创建哪个对象,则可能需要使用工厂设计模式。因此,在这种情况下,switch语句是使用工厂模式的"警铃"。

那么,你知道更多的"警钟"来决定设计模式吗?


通常这个过程是相反的。不要去寻找使用设计模式的情况,寻找可以优化的代码。当您有您认为结构不正确的代码时。试着找到一个能解决这个问题的设计模式。

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


对于初学者,只需浏览本页:http://codebetter.com/jeremymiller/2006/04/11/six-design-patterns-to-start-with/

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

也可以使用本文中的参考资料(尤其是EricGamma的访谈),并且应该对您进行设置。


学习它们,慢慢地,你将能够重新调整并找出何时使用它们。从简单的单件模式开始:)

如果要创建对象的一个实例,而只创建一个实例。你用的是单子模式。假设您正在创建一个带有选项对象的程序。你不想要其中的几个,那太傻了。辛格尔顿确保永远不会有超过一个。单件模式很简单,使用很多,而且非常有效。


我完全同意@peter rasmussen。

设计模式为常见的设计问题提供了一般的解决方案。

我希望你遵循下面的方法。

  • 了解每个模式的意图
  • 了解每个模式的检查表或用例
  • 思考问题的解决方案,检查您的解决方案是否属于特定模式的清单中。
  • 如果没有,只需忽略设计模式并编写自己的解决方案。
  • 有用链接:

    源代码:用C++语言和Java语言解释多种语言的意图、结构和清单

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

    每个源代码设计模式中的检查列表和经验规则提供了您要查找的alram bell。