訪問者模式:表示乙個作用於某物件結構中各元素的操作。它讓我們可以在不改變各元素的前提下定義作用於這些元素的新操作;
使用場景
1.乙個複雜的物件結構包含很多其它物件,它們有不同的介面,但是相對這些物件實施一些依賴於其具體型別的操作;
2.需要對乙個組合結構中的物件進行許多不相關的操作,但是不想讓這些操作「汙染」這些物件的類。
3.定義複雜結構的類很少做修改,但經常需要向其新增新的操作;
裝飾模式:動態地給乙個物件新增一些額外的職責。
就擴充套件功能呢而言,裝飾模式比生成子類更加靈活;
使用場景
1.想要在不影響其他物件的情況下,以動態地,透明的方式給單個物件新增職責;
2.想要擴充套件乙個類的行為,卻做不到。類定義可能被隱藏,無法進行子類化;或者對類的每個行為進行擴充套件,為支援每種功能組合,將產生大量的子類;
3.對類的自責的擴充套件是可選的;
責任鏈模式:使多個物件都有機會處理請求,從而避免請求的傳送者和接收這之間發生耦合。
此模式將這些物件連成一條鏈,並且沿著這條鏈傳遞請求,知道有乙個物件處理它為止;
使用場景
1.有多個物件可以處理請求,而處理程式只有在程式執行時才能確定;
2.向一組物件發出請求,而不想顯示指定處理請求的特定處理程式;
設計模式 行為型模式
行為型模式用於描述程式在執行時複雜的流程控制,即描述多個類或物件之間怎樣相互協作共同完成單個物件都無法單獨完成的任務,它涉及演算法與物件間職責的分配。行為型模式分為類行為模式和物件行為模式,前者採用繼承機制來在類間分派行為,後者採用組合或聚合在物件間分配行為。由於組合關係或聚合關係比繼承關係耦合度低...
行為型設計模式
職責鏈模式 使用多個物件都有機會處理請求,從而避免請求的傳送者和接受者之間的耦合關係。將這個物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。職責鏈模式結構圖 abstarct class handler處理請求 this.gettype name,request 轉移到下一位 cl...
行為型 設計模式
訪問者模式 資料結構相對穩定,對資料操作可變性強,資料結構提供accept方法接收乙個visitor,不同的visitor有不同的訪問此類資料結構的方法,乙個visitor多個資料 beandefinitionvisitor 或多個visitor乙個資料 模板模式 將演算法的基本步驟抽象到父類,子類...