摘自大話設計模式
行為型模式
觀察者模式:定義一種對象間的一對多的依賴關系,當一個對象狀態發生變化,所有依賴他的對象都得到通知并自動更新。
從策劃到設計制作,每一步都追求做到細膩,制作可持續發展的企業網站。為客戶提供成都網站設計、成都網站制作、外貿網站建設、網站策劃、網頁設計、主機域名、網頁空間、網絡營銷、VI設計、 網站改版、漏洞修補等服務。為客戶提供更好的一站式互聯網解決方案,以客戶的口碑塑造優易品牌,攜手廣大客戶,共同發展進步。
模板方法模式:定義一個操作的算法骨架,而將一些步驟延遲到子類中,模板方法使得子類可以不改變一個算法結構即可重定義該算法的某些特定步驟。
由一個抽象類組成,這個抽象類定義了需要覆蓋的可能有不同實現的模板方法,每個派生類將為模板類實現新方法。
命令模式:將一個請求封裝成一個對象,從而使你可用不同的請求對客戶進行參數化;可以對請求排隊或記錄請求日志,以及支持可撤銷的操作。
將調用操作的對象和知道如何實現操作的對象解耦。發送者只管發送請求,而命令模式可以在不同時刻指定,排列和執行請求;也可以在實施操作前保存狀態,以便支持取消重做的操作;還可以記錄整個操作的日志;
狀態模式:允許一個對象在其內部狀態改變時改變他的行為,讓對象看起來好像修改了他的類。
把條件分支分解成多個子類,利用多態提高擴展性和可維護性。
決定狀態轉義的邏輯不在if else 或者swicth里面,而是分布在狀態子類,由于所有與狀態相關的代碼都存在于某個狀態子類中,所以通過定義新的子類可以很容易定義新的狀態和實現狀態的轉換。
職責鏈模式:使多個對象都有機會處理請求,從而避免請求的發送者和接受者之間的耦合關系。將這些對象連成一條鏈,并沿著這鏈傳遞請求,直到一個對象處理他為止。
也是請求者與執行者分離,因為有多個對象可以處理這個請求,但是事先不知道哪個對象將要處理,所以把所有對象排成鏈,并沿著這個鏈傳遞請求,直到一個對象處理了請求。
解釋器模式:給定一個語言,定義他的文法的一種表示,并定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子。
如果一個特定類型的問題的發生頻率夠高,那就可以考慮將該問題的各個實例表述為一個簡單語言中的句子。(構建解釋器,解釋這些句子)
中介者模式:用一個中介對象封裝一系列對象的交互。中介者使得各個對象不需要顯式的相互引用,從而使得耦合松散,而且可以獨立改變他們之間的交互。
將集體行動單獨封裝為中介者,中介者協調控制一組對象的交互。對象不需要顯式的相互引用,他們只知道中介者,這樣可減少對象的相互連接。
訪問者模式:表示一個作用于某對象結構中的各元素的操作,他使得你可以在不改變元素的類的前提下定義作用于這些元素的新操作。(世界上有男人女人,訪問者可定義男人女人的喜怒哀樂并可輕松擴展新情緒。)
訪問者增加具體的元素是困難的,但增加依賴于復雜對象結構的構件的操作很容易,僅需增加一個訪問者即可為該對象定義一個新操作。
策略模式:定義一系列算法,單獨封裝,并且使他們可以互相替換。本模式使得算法可以獨立于使用他的客戶而變化。
優先使用對象組合,而非類繼承。
備忘錄模式:在不破壞封裝性的前提下,捕獲一個對象的內部狀態,并在該對象之外保存這個狀態,這樣可以將該對象隨時恢復到原先保存的狀態。
可避免暴露一些只應該由當前對象管理卻又必須存儲在當前對象外的信息。可把復雜的對象的內部信息對其他對象隱藏,從而保持了封裝邊界。
迭代器模式:提供一種方法可順序訪問對象的各個元素,又不暴露該對象的內部表示。
將對列表的訪問和遍歷從列表對象中分離了出來并放到一個迭代器對象中,迭代器對象定義了一個訪問列表元素的接口,并可跟蹤當前元素,并可知道哪些元素已經遍歷過了。
當前文章:設計模式-行為型模式
網站路徑:http://m.newbst.com/article0/ijphoo.html
成都網站建設公司_創新互聯,為您提供網頁設計公司、品牌網站建設、品牌網站設計、服務器托管、定制網站、外貿建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯