天天看點

Java設計模式-内功修煉-概述設計模式概述

設計模式概述

簡介

  • 設計模式來源于建築學
  • 模式是在特定環境下解決某類重複出現問題的一套成功或者有效的解決方案
  • 最早将模式的思想引入軟體工程方法學的是1991-1992年以“四人組(Gang of Four,簡稱GoF,分别是Erich Gamma, Richard Helm, Ralph Johnson和John Vlissides)”自稱的四位著名軟體工程學者,他們在1994年歸納發表了23種在軟體開發中使用頻率較高的設計模式,旨在用模式來統一溝通面向對象方法在分析、設計和實作間的鴻溝。
  • 俗話說:站在别人的肩膀上,我們會看得更遠。設計模式的出現可以讓我們站在前人的肩膀上,通過一些成熟的設計方案來指導新項目的開發和設計,以便于我們開發出具有更好的靈活性和可擴充性,也更易于複用的軟體系統。
  • 使用設計模式是為了可重用代碼、讓代碼更容易被他人了解并且保證代碼可靠性。
  • 設計模式能讓我們早點脫離面向對象程式設計的菜鳥期
  • 在學習每一個設計模式時至少應該掌握如下幾點:這個設計模式的意圖是什麼,它要解決一個什麼問題,什麼時候可以使用它;它是如何解決的,掌握它的結構圖,記住它的關鍵代碼;能夠想到至少兩個它的應用執行個體,一個生活中的,一個軟體中的;這個模式的優缺點是什麼,在使用時要注意什麼。當你能夠回答上述所有問題時,恭喜你,你了解一個設計模式了,至于掌握它,那就在開發中去使用吧,用多了你自然就掌握了。
  • 嚴格一點說:不會在開發中靈活運用一個模式基本上等于沒學。是以一定要做到:少說多做。
  • 每個模式都有自己的适用場景,不能為了使用模式而使用模式?【怎麼了解,大家自己思考,微笑】,濫用模式不如不用模式,因為濫用的結果得不到“藝術品”一樣的軟體,很有可能是一堆垃圾代碼。
  • 設計模式的“上乘”境界:“手中無模式,心中有模式”。模式使用的最高境界是你已經不知道具體某個設計模式的定義和結構了,但你會靈活自如地選擇一種設計方案【其實就是某個設計模式】來解決某個問題,設計模式已經成為你開發技能的一部分,能夠手到擒來,“内功”與“招式”已渾然一體,要達到這個境界并不是看完某本書或者開發一兩個項目就能夠實作的,它需要不斷沉澱與積累,是以,對模式的學習不要急于求成。
  • 軟體工程大師之一John Vlissides的著作《設計模式沉思錄》(Pattern Hatching Design Patterns Applied):模式從不保證任何東西,它不能保證你一定能夠做出可複用的軟體,提高你的生産率,更不能保證世界和平,微笑。模式并不能替代人來完成軟體系統的創造,它們隻不過會給那些缺乏經驗但卻具備才能和創造力的人帶來希望。

小結:

重點記憶:

  • GOF(四人幫)這個縮寫要記住,軟體工程領域非常出名的,以後聽别人提到不要懵了。
  • 設計模式的目的:代碼重用+幫助了解+提高可靠性
  • 軟體工程師的上乘境界:手中無模式,心中有模式

下一篇傳送門:

面向對象設計原則