北京北大青鳥(niǎo)校區(qū):Java行為模式講解

Java設(shè)計(jì)模塊共分為三個(gè):創(chuàng)建型模式、結(jié)構(gòu)型模式、行為模式。在前面的兩篇文章中,北京北大青鳥(niǎo)校區(qū)老師給同學(xué)們介紹了創(chuàng)建型模式和結(jié)構(gòu)型模式。今天我們將以通俗易懂的舉例方式來(lái)介紹第三塊模式也是最后一種:行為模式。

、行為模式
1、MEMENTO
舉例:同時(shí)跟幾個(gè)MM聊天時(shí),一定要記清楚分別跟MM說(shuō)了些什么話,不然MM發(fā)現(xiàn)了會(huì)不高興,有個(gè)備忘錄,剛才與哪個(gè)MM說(shuō)了什么話都拷貝一份放到備忘錄里面保存,這樣可以隨時(shí)察看以前的記錄。

備忘錄模式:備忘錄對(duì)象是一個(gè)用來(lái)存儲(chǔ)另外一個(gè)對(duì)象內(nèi)部狀態(tài)的快照的對(duì)象。備忘錄模式的用意是在不破壞封裝的條件下,將一個(gè)對(duì)象的狀態(tài)捉住,并外部化,存儲(chǔ)起來(lái),從而可以在將來(lái)合適的時(shí)候把這個(gè)對(duì)象還原到存儲(chǔ)起來(lái)的狀態(tài)。

2、STRATEGY
舉例:跟不同類(lèi)型的女孩約會(huì),要用不同的方法。有的喜歡浪漫,那就去海邊;有的喜歡娛樂(lè),那就去看電影……目的都是為了得到芳心。

策略模式:策略模式針對(duì)一組算法,將每一個(gè)算法封裝到具有共同接口的獨(dú)立的類(lèi)中,從而使得它們可以相互替換。策略模式使得算法可以在不影響到客戶端的情況下發(fā)生變化。策略模式把行為和環(huán)境分開(kāi)。環(huán)境類(lèi)負(fù)責(zé)維持和查詢行為類(lèi),各種算法在具體的策略類(lèi)中提供。由于算法和環(huán)境獨(dú)立開(kāi)來(lái),算法的增減,修改都不會(huì)影響到環(huán)境和客戶端。

3、COMMAND

舉例:和女朋友分隔兩地,只能用書(shū)信聯(lián)系。她有什么想說(shuō)的話都寫(xiě)在信里讓郵遞員帶給我。一天,郵遞員又傳送過(guò)來(lái)一個(gè)COMMAND,同時(shí)告訴我,女朋友還分別給她的家人、朋友送了COMMAND。(北京北大青鳥(niǎo)校區(qū)

命令模式:命令模式把一個(gè)請(qǐng)求或者操作封裝到一個(gè)對(duì)象中。命令模式把發(fā)出命令的責(zé)任和執(zhí)行命令的責(zé)任分割開(kāi),委派給不同的對(duì)象。命令模式允許請(qǐng)求的一方和發(fā)送的一方獨(dú)立開(kāi)來(lái),使得請(qǐng)求的一方不必知道接收請(qǐng)求的一方的接口,更不必知道請(qǐng)求是怎么被接收,以及操作是否執(zhí)行,何時(shí)被執(zhí)行以及是怎么被執(zhí)行的。系統(tǒng)支持命令的撤消。

4、OBSERVER

舉例:同學(xué)聚會(huì)不需要一個(gè)個(gè)的通知,讓所有同學(xué)都加入一個(gè)郵件組,由班長(zhǎng)負(fù)責(zé)發(fā)送聚會(huì)消息,其他同學(xué)作為訂閱者(觀察者)就可以及時(shí)收到消息啦。

觀察者模式:觀察者模式定義了一種一隊(duì)多的依賴(lài)關(guān)系,讓多個(gè)觀察者對(duì)象同時(shí)監(jiān)聽(tīng)某一個(gè)主題對(duì)象。這個(gè)主題對(duì)象在狀態(tài)上發(fā)生變化時(shí),會(huì)通知所有觀察者對(duì)象,使他們能夠自動(dòng)更新自己。

至此,Java的三塊模式都以講解完,希望同學(xué)們能夠通過(guò)通俗易懂的例子來(lái)消化這些知識(shí)。北京北大青鳥(niǎo)校區(qū)學(xué)術(shù)部提供。

北大青鳥(niǎo)網(wǎng)上報(bào)名
北大青鳥(niǎo)招生簡(jiǎn)章