我非常喜欢设计模式,但是我觉得很难看到什么时候可以申请。我已经阅读了许多解释设计模式的网站。我对它们中的大部分都了解,但我发现很难在自己的情况下识别出一种模式。
所以,这就是我提出这个问题的原因。在使用哪种设计模式时是否有任何指导/警钟。
例如,如果您正在执行switch语句以确定需要创建哪个对象,则可能需要使用工厂设计模式。因此,在这种情况下,switch语句是使用Factory模式的“警钟”。
那么,您是否知道更多'警钟'来确定设计模式?
答案 0 :(得分:96)
通常这个过程是相反的。不要去寻找使用设计模式的情况,寻找可以优化的代码。当您拥有您认为没有正确构造的代码时。尝试找到一个可以解决问题的设计模式。
设计模式旨在帮助您解决结构问题,不要仅仅为了能够使用设计模式来设计您的应用程序。
答案 1 :(得分:37)
首先,请看一下这个页面: 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/
也可以使用本文中的参考文献(特别是Eric Gamma的采访),你应该设置好。
答案 2 :(得分:5)
了解它们,慢慢地,您将能够重新协调并找出何时使用它们。从简单的单身模式开始:)
如果你想创建一个对象的实例而只想创建一个。您使用单例模式。假设您正在使用选项对象制作程序。你不想要其中的几个,这将是愚蠢的。 Singleton确保永远不会有多个。单身模式很简单,使用很多,而且非常有效。
答案 3 :(得分:4)
我完全赞同@Peter Rasmussen。
设计模式为常见的设计问题提供了通用解决方案。
我希望您遵循以下方法。
有用的链接:
sourcemaking:以多种语言(包括C ++和Java)精美地解释意图,结构和清单
wikipedia:解释包括C#和Java在内的多种语言的结构,UML图和工作示例。
每个sourcemakding设计模式中的检查清单 和 经验法则 提供了alram bell你在找。