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

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

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

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

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

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

3、COMMAND

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

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

4、OBSERVER

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

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

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

北大青鳥網(wǎng)上報名
北大青鳥招生簡章