訪問者模式:資料結構相對穩定,對資料操作可變性強,資料結構提供accept方法接收乙個visitor,不同的visitor有不同的訪問此類資料結構的方法,乙個visitor多個資料(beandefinitionvisitor)或多個visitor乙個資料
模板模式:將演算法的基本步驟抽象到父類,子類對某些具有差異的具體邏輯進行實現。
策略模式: 將演算法(處理方式)封裝為乙個策略,客戶端在發生某個行為時需選擇乙個策略 ,舉例 rejectedexecutionhandler,comparator
狀態模式 : 允許物件在內部狀態發生改變時改變它的行為,但是如果類有三種方法,四種狀態,那麼可能有12種行為,如何解決大量的if-else,那麼每個state類都提供三種方法,類的操作委託給內部state類進行
觀察者模式:observer/listener
備忘錄模式:不破壞封裝的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態,這樣可以在以後將物件恢復到原先儲存的狀態,客戶端請求物件生成備忘錄,客戶端儲存備忘錄,客戶端使用備忘錄請求物件恢復狀態
中介者模式 :網狀結構轉換為星形結構, 中介者物件需知曉所有的物件,每個物件需知曉中介者物件 ,如controller層就是view層和model層的中介者
迭代器模式 :提供一種方法順序訪問乙個聚合物件中的各種元素,而又不暴露該物件的內部表示,將遍歷的任務交給迭代器物件,需支援多種遍歷方式
直譯器模式:
命令模式 :將請求封裝為命令物件,invoker 持有 command ,command 持有 receiver,command 決定了由哪個receiver執行什麼方法,所以invoker可以持有多個command,以完成不同行為。
責任鏈模式 :如tomcat的filterchain
行為型設計模式
職責鏈模式 使用多個物件都有機會處理請求,從而避免請求的傳送者和接受者之間的耦合關係。將這個物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。職責鏈模式結構圖 abstarct class handler處理請求 this.gettype name,request 轉移到下一位 cl...
設計模式行為型
一 責任鏈模式 這種模式中,有傳送者和接收者。通常,每個接收者都包含對另乙個接收者的引用,形成一條鏈,如果乙個接收者不能處理該請求,那麼它會把相同的請求傳給下乙個接收者,依次類推。這種模式將請求的傳送者和接收者解耦,但是不能保證請求一定被接收。使用場景是有1.多個物件可以處理同乙個請求,具體哪個物件...
行為型設計模式 游標模式
using system using system.collections.generic using system.linq using system.text public inte ce ienumerator 原 是object型別 bool movenext void reset publ...