設計模式(Design pattern)是一套被反覆使用、多數人知曉的、通過分類編目的、代碼設計經驗的總結。使用設計模式是爲了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。 毫無疑問,設計模式於己於他人於系統都是多贏的,設計模式使代碼編制真正工程化,設計模式是軟件工程的基石,如同大廈的一塊塊磚石同樣。項目中合理的運用設計模式能夠完美的解決不少問題,每種模式在如今中都有相應的原理來與之對應,每個模式描述了一個在咱們周圍不斷重複發生的問題,以及該問題的核心解決方案,這也是它能被普遍應用的緣由。 java
整體來講設計模式分爲三大類:設計模式
建立型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。併發
結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。框架
行爲型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。spa
tips:線程
建立模式:咱們在java中的全部調用都須要classloader加載後,先解析成爲java.lang.class複雜類型的field、method、typeParams、superclass、interface、annotatiaon信息,而後經過new關鍵字在堆中分配空間,最後在調用。而建立模式主要解決的是new的方式問題。重點是工廠模式和單例模式,通常用在框架的配置文件管理和處理類管理。設計
結構模式:結構模式充分利用了咱們的面向對象的三大組成:封裝、繼承、多態,來完成須要的類方法的重寫。也就是對一個類進行從新封裝。通常用來框架的分支功能上,以提供自定義的實現。代理
行爲模式:主要是幾個類之間的關聯,通常用在框架的邏輯處理上。對象
其實還有兩類:併發型模式和線程池模式。用一個圖片來總體描述一下: 繼承