it-swarm.cn

最常用的设计模式是什么?

您认为哪种设计模式最受欢迎?

24
Tamara Wijsman

我敢肯定,最常见的是“泥浆大球”。对我们所有人来说都是不幸的。
http://en.wikipedia.org/wiki/Big_ball_of_mud

39
Jay

[〜#〜] mvc [〜#〜]及其变化肯定是最主要的设计模式之一。

25
ysolik

如果您在谈论Gang-of-Four设计模式,我不得不说Singleton。这真是令人伤心的状态-几乎就像程序员听到了设计模式的魔力,然后在第一个模式之后就停了下来。

如果您正在谈论建筑风格模式(换句话说,跨越多个类或层的设计模式),我不得不说[〜#〜] mvc [〜#〜]存储库模式和服务定位符是其他一些流行的方法。

21
Jaco Pretorius

观察者

如果您曾经使用过事件。您已经使用过观察者。

16
Steven Evers

装饰

通过组合在运行时向对象添加功能。我个人的最爱。

编辑:而且Factory可能是最常见的之一。

7
JD Isaacks

为什么没有人提到iterator?尤其是对于构成复杂数据结构的所有地图……这是我使用最多的地图。还是我们在谈论我们重新实现的模式?

5
ToTheBeach

策略模式

如果您曾经使用过依赖注入,那么您将使用策略模式。

5
richeym

门面

想想任何REST接口,例如Twitter或SO APIs。)它隐藏了一堆后端东西,至少在twitters的情况下,可能非常复杂。

我是否关心@apklusk的tweets存储在哪些数据库表中?而且它具有快速缓存?并且@shemnon的读者如此之少,这些tweet总是没用吗?那就是立面的魔力。

5
shemnon

我感到惊讶的是,没有人提到Factory模式,根据我的经验,这是其中最常用(也是最滥用)的模式之一。如果不是第一,可能单身人士应该是第一,我以为这将是紧随其后的第二。

3
AlexC

除了我以前的回答,我还要添加一个今天从继承的项目中遇到的新问题:

复制/粘贴

在调试时,我遇到了一段代码,调用了2个名称相似的函数:

if(x)
   Func1
else
   Func2

Func1和Func2具有相同的参数。我将它们拉出并进行了比较,它们完全相同,除了Func1调用Func3和Func2调用Func4。我把那些拉出来,并与他们区分开。 100%相同,除了1行。因此,以前的程序员决定将两个50行嵌套的函数复制并粘贴到恰好在1个地方使用的2个私有函数中,而不是添加标志参数。这让我想哭。

3
Jay

在谈论“四人行”设计模式时,我想不出一个不使用观察者模式的程序。而且,正如Jaco所述,Singleton也被广泛使用,不幸的是,它已经成为一个锤子(即使不是完全需要,任何程序员都可以使用它)。

2
Cristian

口译员

很少执行,经常使用。 XPATH,XSLT,Regex,jQuery选择器等.

2
Jesse Millikan

规格

我认为它不在GoF中,但我一直都在使用它的变体。

1
John Kraft

我很惊讶没有人说过“ Builder”。或“适配器”。它们可能不像其他提到的那样异国情调,但是我一直都在使用它们。工厂和抽象工厂也很常见(但已经被使用了)。

1
Tim Claason

显然,最常用的设计模式是 Spaghetti

1
SK-logic

在软件设计级别,我认为“复合”,“策略”和“模板”(在较小程度上是“工厂”)是最广泛使用的。在过去的十年左右的时间里,我们看到在使用OO)设计系统构建系统时,偏爱于继承而不是继承。因此,上述模式的组合比其他所有IMO。

从体系结构上讲,我主张在企业上使用MVC,并在事物的嵌入式方面主张基于状态机的模式。

0
luis.espinal