設計模式-行爲型模式

摘自大話設計模式
行爲型模式
觀察者模式:定義一種對象間的一對多的依賴關係,當一個對象狀態發生變化,所有依賴他的對象都得到通知並自動更新。
設計模式-行爲型模式

模板方法模式:定義一個操作的算法骨架,而將一些步驟延遲到子類中,模板方法使得子類可以不改變一個算法結構即可重定義該算法的某些特定步驟。
由一個抽象類組成,這個抽象類定義了需要覆蓋的可能有不同實現的模板方法,每個派生類將爲模板類實現新方法。
設計模式-行爲型模式

命令模式:將一個請求封裝成一個對象,從而使你可用不同的請求對客戶進行參數化;可以對請求排隊或記錄請求日誌,以及支持可撤銷的操作。
將調用操作的對象和知道如何實現操作的對象解耦。發送者只管發送請求,而命令模式可以在不同時刻指定,排列和執行請求;也可以在實施操作前保存狀態,以便支持取消重做的操作;還可以記錄整個操作的日誌;
設計模式-行爲型模式

狀態模式:允許一個對象在其內部狀態改變時改變他的行爲,讓對象看起來好像修改了他的類。
把條件分支分解成多個子類,利用多態提高擴展性和可維護性。
決定狀態轉義的邏輯不在if else 或者swicth裏面,而是分佈在狀態子類,由於所有與狀態相關的代碼都存在於某個狀態子類中,所以通過定義新的子類可以很容易定義新的狀態和實現狀態的轉換。
設計模式-行爲型模式

職責鏈模式:使多個對象都有機會處理請求,從而避免請求的發送者和接受者之間的耦合關係。將這些對象連成一條鏈,並沿着這鏈傳遞請求,直到一個對象處理他爲止。
也是請求者與執行者分離,因爲有多個對象可以處理這個請求,但是事先不知道哪個對象將要處理,所以把所有對象排成鏈,並沿着這個鏈傳遞請求,直到一個對象處理了請求。
設計模式-行爲型模式

解釋器模式:給定一個語言,定義他的文法的一種表示,並定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子。
如果一個特定類型的問題的發生頻率夠高,那就可以考慮將該問題的各個實例表述爲一個簡單語言中的句子。(構建解釋器,解釋這些句子)
設計模式-行爲型模式

中介者模式:用一箇中介對象封裝一系列對象的交互。中介者使得各個對象不需要顯式的相互引用,從而使得耦合鬆散,而且可以獨立改變他們之間的交互。
將集體行動單獨封裝爲中介者,中介者協調控制一組對象的交互。對象不需要顯式的相互引用,他們只知道中介者,這樣可減少對象的相互連接。
設計模式-行爲型模式

訪問者模式:表示一個作用於某對象結構中的各元素的操作,他使得你可以在不改變元素的類的前提下定義作用於這些元素的新操作。(世界上有男人女人,訪問者可定義男人女人的喜怒哀樂並可輕鬆擴展新情緒。)
訪問者增加具體的元素是困難的,但增加依賴於複雜對象結構的構件的操作很容易,僅需增加一個訪問者即可爲該對象定義一個新操作。
設計模式-行爲型模式

策略模式:定義一系列算法,單獨封裝,並且使他們可以互相替換。本模式使得算法可以獨立於使用他的客戶而變化。
優先使用對象組合,而非類繼承。
設計模式-行爲型模式

備忘錄模式:在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態,這樣可以將該對象隨時恢復到原先保存的狀態。
可避免暴露一些只應該由當前對象管理卻又必須存儲在當前對象外的信息。可把複雜的對象的內部信息對其他對象隱藏,從而保持了封裝邊界。
設計模式-行爲型模式

迭代器模式:提供一種方法可順序訪問對象的各個元素,又不暴露該對象的內部表示。
將對列表的訪問和遍歷從列表對象中分離了出來並放到一個迭代器對象中,迭代器對象定義了一個訪問列表元素的接口,並可跟蹤當前元素,並可知道哪些元素已經遍歷過了。
設計模式-行爲型模式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章