軟件開發技術包含「招式」與「內功」,其中,編程語言,開發技術,著名框架能夠認爲是「招式」,而數據結構,算法,設計模式,重構,軟件工程等則爲「內功」。「招式」能夠很快學會,可是「內功」的修煉須要更長的時間。對設計模式的學習會令「內功」大增,配合日益純熟的「招式」,軟件開發「功力」想必會達到一個新境界。下面來正式踏入修煉設計模式之旅。算法
模式是在特定環境下人們解決某類重複出現的問題的一套成功或有效的解決方案。
GoF(Gang of Four,簡稱GoF,分別是Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides)將模式的概念引入軟件工程領域,標誌着軟件模式的誕生。軟件模式是將模式的通常概念應用與軟件開發領域,即軟件開發的整體指導思想或參照樣板。軟件模式並不是僅限於設計模式,還包括架構模式,分析模式和過程模式等。
在軟件模式中,設計模式是研究最爲深刻的分支。設計模式用於在特定條件下爲一些重複出現的問題提供合理的,有效的解決方案。編程
設計模式通常定義以下:設計模式
設計模式是一套被反覆使用的,多數人知曉的,通過分類編目的,代碼設計經驗的總結,使用設計模式是爲了可重用代碼, 讓代碼更容易被他人理解而且提升代碼的可靠性。
設計模式通常包含的要素:bash
其中關鍵要素爲模式名稱,問題,解決方案以及效果:微信
GoF設計模式有23個,模式分類能夠按照用途或者處理方式進行分類,按照用途分類的話,能夠分爲:數據結構
根據處理方式分類,能夠分爲:架構
兩種分類模式一般結合使用,好比單例模式是對象建立型模式。框架
若是以爲文章好看,歡迎點贊。編程語言
同時歡迎關注微信公衆號:氷泠之路。ide