2010-02-24 56 views
5

为什么我们需要像Factory,Abstract Factory和Singleton这样的设计模式?为什么我们需要设计模式

+6

出于同样的原因,我们使用食谱来烘烤饼干。它们是用于实现已知结果的可重复过程。如果没有我们的cookie配方,每批都将是一项全新的发明 - 软件中的设计模式也是如此。 – slugster

+1

@slugster我希望我能给你的意见更多upvotes –

+1

@slugster我们应该称他们烘烤饼干的算法? – everlasto

回答

12

设计模式提供了容易识别和使用面向对象解决方案的常见问题。它们本身很容易维护,因为很多人都熟悉它们。这与谷歌的工作方式非常相似。每个人都知道如何谷歌,所以当你得到像“设计模式的目的是什么”的查询时,你可以很快使用这个通用接口来解决问题。

设计模式还解决了关于可用性和可维护性方面的特定编程挑战。拿起Gang of Four book并拥有它。

4

在某些情况下,为了实用性。当你看到一个常见的问题时,你会发现一个通用的解决方案。它发生在建筑,机械,可用性和人类行为上,编程也不例外。

在其他一些情况下,该模式也是处理语言“效率低下”的一种方式,其中“效率低下”的含义非常广泛,而且并不总是一个坏词。例如,在函数是第一类对象的语言中,通常在java中使用的一些模式不那么重要。一些设计模式仅在某些语言中才有意义,而在其他语言中则不可行:Crockford描述了这种语言所特有的Javascript模式,以处理语言的潜在类雷区特性(我必须指出,这是一种真正的很酷的语言,一旦你明白了)。

6

如果问题一遍又一遍地发生,该问题的解决方案已得到有效使用。该解决方案被描述为一种模式。