設計模式(Design Patterns)設計模式
設計模式(Design pattern)是一套被反覆使用、多數人知曉的、通過分類編目的、代碼設計經驗的總結。使用設計模式是爲了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。
在軟件開發過程當中,一個功能的實現方式多種多樣,不一樣方法的可擴展性、可維護性以及複用性都是不同的。隨着一我的對本身項目代碼的要求增長,他會逐漸思考和實踐出本身的一套方法或者思想,這種方法或思想決定了他設計出的架構或者編寫出的代碼的質量優劣。設計模式就屬於這樣一種經驗的積累,是由大量優秀的工程師或者架構師總結和提煉的精華,學習好設計模式等於讓咱們站在了巨人的肩膀上,從一個高的起點出發,能夠避免走不少彎路。架構
設計模式的使用必定是根據場景來選擇的,並且設計模式的實現方式也不是固定的,咱們必定要在理解現有設計模式的基礎上,根據本身實際的狀況不斷實踐不斷理解。就像所謂的《泡妞大全》,讀千萬遍都不如實踐一次來的實際。框架
若是你對設計模式徹底沒有感受,那麼去好好寫一個類庫,或者一個簡單的MVC框架,這個過程會讓你感受到本身缺失的部分。學習
分類設計
在《設計模式:可複用面向對象軟件的基礎》這本書中,做者把設計模式分了三大類:代理
建立型模式對象
建立型模式是爲了解決建立對象時候遇到的問題。由於基本的對象建立方式可能會致使設計上的問題,或增長設計的複雜度。建立型模式有兩個主導思想:一是將系統使用的具體類封裝起來,二是隱藏這些具體類的實例建立和結合方式。開發
最多見的五種建立型模式以下:原型
工廠方法模式
抽象工廠模式
單例模式
建造者模式
原型模式
結構型模式模板
結構型模式是經過定義一個簡單的方法來實現和了解實體間關係,從而簡化設計。
適配器模式
橋接模式
合成模式
裝飾器模式
門面模式
代理模式
享元模式
行爲型模式
行爲型模式用來識別對象之間的經常使用交流模式並加以實現,使得交流變得更加靈活。
策略模式模板方法模式觀察者模式迭代器模式責任鏈模式命令模式備忘錄模式狀態模式訪問者模式中介者模式解釋器模式