爲什麼我們需要像Factory,Abstract Factory和Singleton這樣的設計模式?爲什麼我們需要設計模式
5
A
回答
12
設計模式提供了容易識別和使用面向對象解決方案的常見問題。它們本身很容易維護,因爲很多人都熟悉它們。這與谷歌的工作方式非常相似。每個人都知道如何谷歌,所以當你得到像「設計模式的目的是什麼」的查詢時,你可以很快使用這個通用接口來解決問題。
設計模式還解決了關於可用性和可維護性方面的特定編程挑戰。拿起Gang of Four book並擁有它。
4
在某些情況下,爲了實用性。當你看到一個常見的問題時,你會發現一個通用的解決方案。它發生在建築,機械,可用性和人類行爲上,編程也不例外。
在其他一些情況下,該模式也是處理語言「效率低下」的一種方式,其中「效率低下」的含義非常廣泛,而且並不總是一個壞詞。例如,在函數是第一類對象的語言中,通常在java中使用的一些模式不那麼重要。一些設計模式僅在某些語言中才有意義,而在其他語言中則不可行:Crockford描述了這種語言所特有的Javascript模式,以處理語言的潛在類雷區特性(我必須指出,這是一種真正的很酷的語言,一旦你明白了)。
6
如果問題一遍又一遍地發生,該問題的解決方案已得到有效使用。該解決方案被描述爲一種模式。
相關問題
- 1. 生成器設計模式:爲什麼我們需要一個Director?
- 2. 爲什麼我們需要命令設計模式中的「接收器」類
- 3. 爲什麼我們需要在戰略設計模式中使用Context類?
- 4. 爲什麼我們需要設置SONAR_RUNNER_OPTS?
- 5. 爲什麼我們需要在xml設計中使用xmlns:android?
- 6. 爲什麼我們需要觀察者模式?
- 7. 存儲庫模式 - 爲什麼我們需要接口?
- 8. 爲什麼我們需要工廠模式的工廠?
- 9. 工廠設計模式 - 爲什麼需要界面?
- 10. 模型中有什麼?爲什麼我們需要使用它
- 11. 我們是否還需要迭代器設計模式?
- 12. DavLockDB:我們需要什麼?
- 13. 我需要一個設計模式嗎?
- 14. 爲什麼我們需要simple_one_for_one?
- 15. 爲什麼我們需要TensorFlow tf.Graph?
- 16. 爲什麼我們需要使用prompt.start()?
- 17. 爲什麼我們需要scalaz.stream迭代?
- 18. 爲什麼我們需要WCF
- 19. 爲什麼我們需要Anaconda 2.7?
- 20. 爲什麼我們需要編寫log.isDebugEnabled?
- 21. 爲什麼我們需要ng-click?
- 22. 爲什麼我們需要Control.Lens.Reified?
- 23. 我們爲什麼需要纖維
- 24. 爲什麼我們需要org.junit.ComparisonFailure?
- 25. 爲什麼我們需要addRequestHeader方法?
- 26. 爲什麼我們需要時代?
- 27. 爲什麼我們需要ContinueWith方法?
- 28. 爲什麼我們需要Java NIO Selector?
- 29. 爲什麼我們需要使用ExitWindowsEx
- 30. 爲什麼我們需要包裝類
出於同樣的原因,我們使用食譜來烘烤餅乾。它們是用於實現已知結果的可重複過程。如果沒有我們的cookie配方,每批都將是一項全新的發明 - 軟件中的設計模式也是如此。 – slugster
@slugster我希望我能給你的意見更多upvotes –
@slugster我們應該稱他們烘烤餅乾的算法? – everlasto