2010-02-24 58 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

如果問題一遍又一遍地發生,該問題的解決方案已得到有效使用。該解決方案被描述爲一種模式。