設計模式總共23種,能夠歸結爲3大類設計模式
比較經常使用的設計模式有:單例模式、工廠模式、代理模式、構造者模式、責任鏈模式、適配器模式、觀察者模式等。併發
單例模式是最多見的設計模式了,這裏主要說一下這種設計模式的實現方式ui
工廠模式主要用來建立不通的實例,例如 Spring 中各類 Bean 的建立。設計
代理模式就是指不直接引用另外一個對象,能夠經過這種方式對被代理對象的訪問進行控制。其中代理模式又分爲靜態代理和動態代理,靜態代理就是指寫死在源代碼裏的,動態代理是指在 JVM 運行過程當中動態建立的代理類,通常有 JDK 動態代理、CGLIB 等。代理
構造者模式主要適用於一個對象有不少複雜的屬性,須要根據不一樣狀況建立不一樣的具體對象,就是咱們平時用的 builder 模式。對象
責任鏈模式有點像工廠的流水線,鏈上每個節點完成對對象的某一種處理。事件
適配器模式就是把兩種不匹配的對象進行適配,相似於轉接頭,例如 SLF4J 。資源
觀察者模式也叫作發佈訂閱模式,意指一個對象的行爲會觸發其餘一系列的事件。原型