何时使用哪种设计模式?

Mar*_*ijn 102 c# design-patterns

我非常喜欢设计模式,但是我发现很难看到什么时候可以申请.我已经阅读了许多解释设计模式的网站.我对它们中的大部分都了解,但我发现很难在自己的情况下识别出一种模式.

所以,这就是我提出这个问题的原因.在使用哪种设计模式时是否有任何指导/警钟?

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

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

小智 97

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

设计模式旨在帮助您解决结构问题,不要只是为了能够使用设计模式来设计您的应用程序.

  • 不仅是结构问题,还有行为和创造性问题. (20认同)

J K*_*J K 37

首先看一下这个页面: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的访谈),你应该设置.

  • 这不是答案.只提供没有任何解释或摘要的链接(除了"你必须阅读......")没什么价值.特别是当链接没有维持或中断时. (3认同)

Pet*_*sen 5

学习它们,慢慢地你将能够重新组合并找出何时使用它们.从简单的单身模式开始:)

如果你想创建一个对象的实例而只想创建一个.您使用单例模式.假设您正在使用选项对象制作程序.你不想要其中的几个,这将是愚蠢的.Singleton确保永远不会有多个.单身人士模式很简单,使用很多,而且非常有效.

  • 当你*只需要一个*实例时,单例并不适用.Singleton适用于需要*限制*到一个实例的时候.当您*只需要一个*实例时,您可以尝试只创建一个实例并使用它. (16认同)