設計模式

設計模式總共23種,能夠歸結爲3大類設計模式

  1. 建立型:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
  2. 結構型:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
  3. 行爲型:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。

比較經常使用的設計模式有:單例模式、工廠模式、代理模式、構造者模式、責任鏈模式、適配器模式、觀察者模式等。併發

單例模式

單例模式是最多見的設計模式了,這裏主要說一下這種設計模式的實現方式ui

  1. 靜態初始化方式(餓漢方式),顧名思義,也就是在初始類的時候實現單例的建立,這種方式不會產生併發問題,缺點是不管會不會使用都會建立對象佔用資源。
  2. 雙重檢查方式(懶漢方式),這種方式就是隻有在真正使用的時候纔去初始化單例,這樣就不可避免的有併發問題了,這裏能夠加 synchronized 或者 lock。
  3. 單例註冊表方式,其實也就是 Spring 中 Bean 的單例模式。

工廠模式

工廠模式主要用來建立不通的實例,例如 Spring 中各類 Bean 的建立。設計

代理模式

代理模式就是指不直接引用另外一個對象,能夠經過這種方式對被代理對象的訪問進行控制。其中代理模式又分爲靜態代理和動態代理,靜態代理就是指寫死在源代碼裏的,動態代理是指在 JVM 運行過程當中動態建立的代理類,通常有 JDK 動態代理、CGLIB 等。代理

構造者模式

構造者模式主要適用於一個對象有不少複雜的屬性,須要根據不一樣狀況建立不一樣的具體對象,就是咱們平時用的 builder 模式。對象

責任鏈模式

責任鏈模式有點像工廠的流水線,鏈上每個節點完成對對象的某一種處理。事件

適配器模式

適配器模式就是把兩種不匹配的對象進行適配,相似於轉接頭,例如 SLF4J 。資源

觀察者模式

觀察者模式也叫作發佈訂閱模式,意指一個對象的行爲會觸發其餘一系列的事件。原型

相關文章
相關標籤/搜索