設計模式總共23種,可以歸結為3大類
- 創建型:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式,
- 結構型:配接器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式,
- 行為型:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式,
比較常用的設計模式有:單例模式、工廠模式、代理模式、構造者模式、責任鏈模式、配接器模式、觀察者模式等,
單例模式
單例模式是最常見的設計模式了,這里主要說一下這種設計模式的實作方式
- 靜態初始化方式(餓漢方式),顧名思義,也就是在初始類的時候實作單例的創建,這種方式不會產生并發問題,缺點是無論會不會使用都會創建物件占用資源,
- 雙重檢查方式(懶漢方式),這種方式就是只有在真正使用的時候才去初始化單例,這樣就不可避免的有并發問題了,這里可以加 synchronized 或者 lock,
- 單例注冊表方式,其實也就是 Spring 中 Bean 的單例模式,
工廠模式
工廠模式主要用來創建不通的實體,例如 Spring 中各種 Bean 的創建,
代理模式
代理模式就是指不直接參考另一個物件,可以通過這種方式對被代理物件的訪問進行控制,其中代理模式又分為靜態代理和動態代理,靜態代理就是指寫死在源代碼里的,動態代理是指在 JVM 運行程序中動態創建的代理類,一般有 JDK 動態代理、CGLIB 等,
構造者模式
構造者模式主要適用于一個物件有很多復雜的屬性,需要根據不同情況創建不同的具體物件,就是我們平時用的 builder 模式,
責任鏈模式
責任鏈模式有點像工廠的流水線,鏈上每一個節點完成對物件的某一種處理,
配接器模式
配接器模式就是把兩種不匹配的物件進行適配,類似于轉接頭,例如 SLF4J ,
觀察者模式
觀察者模式也叫做發布訂閱模式,意指一個物件的行為會觸發其他一系列的事件,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/213792.html
標籤:設計模式
