概念
一、定義
分類
[一]類模式
[1]模板模式 Template Pattern
[2]解釋器模式 Interpreter Pattern
[二]對象模式
[1]策略模式 Strategy Pattern
[2]狀態模式 State Pattern
[3]命令模式 Command Pattern
[4]責任鏈模式 Chain of Responsibilty
[5]迭代器模式 Iterator Pattern
[6]訪問者模式 Visitor Pattern
[7]觀察者模式 Observer Pattern
[8]中介者模式 Mediator Pattern
[9]備忘錄模式 Mementor Pattern
一、類模式
模板模式
定義
[1]基類 定義模板方法
[2]子類 覆蓋模板方法
屬性 類-單繼承
目的 分離方法結構、方法內容
實現 不去改變方法結構,重置方法內容
應用 代碼重構、BaseResponse、Junit
區別
[1]Template 靜態 編譯期
[2]State 動態 運行期
[3]Strategy 動態 運行期
解釋器模式
定義
目的 語言轉義
屬性
應用 SpringMVC:視圖解析器;持久層解釋器:XML轉換SQL
二、對象模式
狀態模式
定義
目的 狀態添加、轉換 對象狀態,轉換直到條件
角色
[1]StateManager 狀態管理方 基類 管理State類
[2]ConcereateState 狀態集中方 基類 派生State類[ConcereateState 列類]
[3]State 狀態邏輯方
應用 多個狀態,不同邏輯
[1]替代條件語句:if-else、switch;State子類封裝條件分支
流程
[1]分割狀態 狀態確定行爲
[2]
策略模式
定義
目的 分離調用時機,算法規則
角色
[0]算法調用類
[1]Context
[2]算法基類 業務邏輯 封裝業務
[3]算法子類 算法邏輯 封裝算法
應用 Excel中,錄入數據,生成統計數據:全量數據-數據原值,增量數據-數據差值
區別
[1]State Context 實例化特殊的算法類 封裝狀態、行爲不同,切換頻率高
[2]Strategy StateManager實例化所有的處理類 封裝算法、行爲相同,切換頻率低
命令模式
定義
屬性 接口-多繼承,激活接口=響應開關
應用
[1]Servlet 分離處理邏輯、激發邏輯
激發函數doGet()、doPost(),激發邏輯封裝在配置文件
[2]Junit
區別
[1]Chain 責任鏈模式 處理激發順序 相同Request
[2]Command 命令模式 處理激發時機 不同Request
責任鏈模式
定義 繼承責任鏈接口[組成響應鏈]
屬性 接口-多繼承,添加處理對象
目的 組成鏈式處理流程
角色
[1]請求類 對象
[2]響應鏈 接口 添加、激發處理類
[3]處理類 實現類 處理請求類
應用
[1]Servlet 動態響應,傳遞Request多個Servlet
[2]Filter
迭代器模式
定義
角色
目的 遍歷數據集合,分離算法、過程
屬性 接口-多繼承
應用 Iterator接口
訪問者模式
定義
目的 遍歷對象、處理對象
屬性 接口-多繼承
應用
[1]JDBC 消除冗餘代碼=數據處理
[2]SpringIoC 處理邏輯封裝至Bean,Spring框架負責初始化,釋放資源,執行SQL,遍歷數據集合
區別
[1]Iterator 迭代器模式 數據讀取模式-拉模型,利用繼承處理
[2]Visitor 訪問者模式 數據讀取模式-推模式,利用多態處理
中介者模式
定義
目的 隔離通信 [模塊、類]
屬性
應用
區別
[1]Factory 創建、初始化類
[2]Facade
[3]Mediator
觀察者模式
定義
目的 增加數據表現形式,反映數據變更 Subject:Observers = 1:n
[1]分離數據邏輯、表現邏輯 解耦合
[2]Subject操作數據,Observers相應改變
屬性
角色
[1]Subject 主題對象 接口 註冊接口:Observers註冊到Subject
[2]Observer 觀察者 接口 實現接口:實現類Observers
[3]通知者 通知方法遍歷觀察者,
應用 MVC
[一]Spring-MVC
[二]Struts-MVC
[1]Controller 控制器 分離模型、視圖
請求解釋、數據校驗、請求分發、
異常處理、日誌記錄、安全認證、頁面跳轉
[2]Model 模型 執行業務,數據邏輯
[3]View 視圖 生成頁面,表現邏輯
備忘錄模式