Java23種設計模式

2021-09-07 19:58:57 字數 2409 閱讀 2294

定義:設計模式(design pattern)是一套反覆使用、多數人知曉的、經過分類編目的**設計經驗的總結。使用設計模式是為了可重用**、讓**更容易被他人理解、保證**可靠性。

單例模式,特點:全域性只有乙個例項。

定義:單例模式,也叫單子模式,是一種常用的軟體設計模式。在應用這個模式的時候,單例物件的類必須保證只有乙個例項存在。

工廠方法模式,特點:為每種產品設計乙個單獨的工廠。

定義:為不同產品提供不同的工廠實現類,呼叫不同工廠實現類初始化不同工廠例項。

抽象工廠模式,特點:工廠包含多個工廠。

定義:為內部多個工廠提供介面選擇的工廠模式。

建造者模式,特點:根據使用者呼叫不同,生產出的產品也不同。

定義:將乙個複雜的物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。

原型模式,特點:轉殖物件。

定義:原型模式就是物件的轉殖,是用於解決物件重複建立消耗效能的問題,或者資料的備份。

迭代器模式,特點:有序集合遍歷功能分離

定義:為順序集合封裝乙個迭代器,用於訪問順序集合物件,無需考慮集合中的其他功能。

觀察者模式,特點:一對一或一對多的響應關係。

定義:乙個物件發生改變,訂閱他的物件也隨著跟著改變,不需要在乎互相之間是如何改變的。

模板方法模式,特點:繼承抽象類。

定義:構建骨架、提取邏輯以及功能實現的公共部分,不確定功能交給子類實現。

命令模式,特點:借助命令物件來解耦。

定義:建立乙個命令,內部持有請求物件,呼叫者持有命令的統一呼叫,實現呼叫者和請求之間的解耦。

狀態模式,特點:改變物件內部狀態。

定義:狀態模式把所研究的物件的行為包裝在不同的狀態物件裡,物件內部狀體發生改變,呼叫不同的狀態物件,行為也發生改變。

策略模式,特點:把不同演算法封裝成策略物件。

定義:策略模式把所研究的物件的演算法包裝在不同的策略物件裡,策略物件改變計算的結果也會發生改變。

責任鏈模式,特點:上下級關係中任意等級處理問題。

定義:為請求者建立乙個接受者鏈,請求者不需要關心具體誰處理了請求,實現請求者和具體的請求處理者之間的解耦。

中介者模式,特點:多個相互關聯物件解耦。

訪問者模式,特點:訪問者使用過載,條件為被訪問者。

定義:訪問者模式包含兩個元素:訪問者、被訪問者。其中根據訪問者的不同,被訪問者提供的資料也不同。

直譯器模式,特點:遞迴分步解決問題。

定義:一種語法分析工具,用來分步解釋乙個複雜的運算過程,複雜運算拆分成多個小運算。

備忘錄模式,特點:建立儲存狀態的類以及管理的類。

定義:用來儲存物件內部狀態的設計模式。

組合模式,特點:一種呼叫解決所有問題。

定義:組合模式就是物件巢狀物件的模式,組合模式是以樹形結構呈現。

外觀模式 ,特點:單獨封裝一層呼叫。

定義:當系統擁有多個子系統的時候,為了方便客戶使用,結構上封裝一層統一呼叫的外觀,這種模式叫做外觀模式。

**模式,特點:**者持有被**者並擁有共同的方法。

定義:動態生成乙個子類, 然後子類覆蓋**類中的方法。

介面卡模式,特點:把不適合變為適合。

定義:將不符合要求的物件適配成符合要求物件的一種模式。

裝飾模式,特點:化妝不改變原本的樣子。

定義:裝飾模式是不改變原來物件的基礎上對原物件的拓展。

橋模式,特點:抽象類與介面功能分離。

定義:橋模式用於抽象(abstraction)與實現(implementation)功能的解耦,使複雜的專案邏輯簡單化,符合迪公尺特法則。

享元模式,特點:復用物件。

定義:享元模式通過物件的復用,減少建立物件對效能的消耗,並且減少系統中物件的數量,節約記憶體。

Java23種設計模式

建立型模式,共五種 工廠方法模式 抽象工廠模式 單例模式 建造者模式 原型模式。結構型模式,共七種 介面卡模式 裝飾器模式 模式 外觀模式 橋接模式 組合模式 享元模式。行為型模式,共十一種 策略模式 模板方法模式 觀察者模式 迭代子模式 責任鏈模式 命令模式 備忘錄模 式 狀態模式 訪問者模式 中...

Java 23種設計模式

型別 模式建立型工廠模式 抽象工廠模式 單例模式 建造者模式 原型模式 結構型介面卡模式 橋接模式 組合模式 外觀模式 裝飾者模式 享元模式 模式 行為型責任鏈模式 命令模式 直譯器模式 迭代模式 中介者模式 備忘錄模式 觀察者模式 狀態模式 策略模式 模板方法模式 訪問者模式 模式說明 工廠模式 ...

Java23種設計模式 Adapter模式 二

adapter模式 介面卡 這個設計模式相對來說還是比較容易理解的.本文以電源介面卡為例子,其中banner類就相當於是240v的實際輸入電壓,print介面,則代表著介面卡的輸出,就當他是12v和24v,而printbanner類就相當於是介面卡,他擁有著轉換功能.目錄 banner類 publi...