7.2.3 行為性模式
行為性模式 影響 系統(tǒng)的 狀態(tài)、行為流。
簡(jiǎn)化、優(yōu)化 并且 提高應(yīng)用程序的 可維護(hù)性。
1、Chain of Responsibility 模式
在系統(tǒng)中建立一個(gè)鏈,在首先接收到它的級(jí)別處 被處理,或者定位到可以處理它的對(duì)象。
優(yōu)點(diǎn):
降低了耦合度。
增加面向?qū)ο笾贫ㄘ?zé)任的 靈活性。
類的集合可以作為一個(gè)整體。
以下情況中,應(yīng)該使用 Chain of Responsibility 模式:
多個(gè)對(duì)象可以處理一個(gè)請(qǐng)求,而其處理器卻是未知的。
在不指定確切的 請(qǐng)求接受對(duì)象的情況下,向幾個(gè)對(duì)象中的 一個(gè) 發(fā)送請(qǐng)求。
動(dòng)態(tài)地指定能夠處理請(qǐng)求的對(duì)象集。
2、Command 模式
在對(duì)象中封裝了請(qǐng)求。
優(yōu)點(diǎn):
將調(diào)用操作的對(duì)象 與 知道如何完成該操作的對(duì)象 相分離。
更容易添加新指令,因?yàn)椴挥眯薷囊延蓄悺?/P>
以下情況中,應(yīng)該使用 Command 模式:
要通過(guò)執(zhí)行的動(dòng)作 來(lái) 參數(shù)化對(duì)象。
在不同的時(shí)間 指定、排序、執(zhí)行 請(qǐng)求。
必須支持 Undo、日志記錄 或 事務(wù)。
3、Interpreter 模式
解釋定義其語(yǔ)法表示的語(yǔ)言,提供了語(yǔ)句解釋器。
優(yōu)點(diǎn):
容易修改并擴(kuò)展語(yǔ)法。
更容易實(shí)現(xiàn)語(yǔ)法。
以下情況中,應(yīng)該使用 Interpreter 模式:
語(yǔ)言的語(yǔ)法比較簡(jiǎn)單。
效率并不是最主要的問(wèn)題。
4、Iterator 模式
為集合中的有序訪問(wèn)提供了一致的方法,而該集合是獨(dú)立于基礎(chǔ)集合。
優(yōu)點(diǎn):
支持集合的不同遍歷。
簡(jiǎn)化了集合的接口。
以下情況中,應(yīng)該使用 Iterator 模式:
不開(kāi)放集合對(duì)象內(nèi)部表示的前提下,訪問(wèn)集合對(duì)象內(nèi)容。
支持集合對(duì)象的多重遍歷。
為遍歷集合中的不同結(jié)構(gòu) 提供了統(tǒng)一的接口。
5、Mediator 模式
通過(guò)引入一個(gè)能夠管理對(duì)象間消息分布的對(duì)象,簡(jiǎn)化了系統(tǒng)中對(duì)象間的通信。提高了對(duì)象間的松耦合度,還可以獨(dú)立地 改變 其間的交互。
優(yōu)點(diǎn):
去除對(duì)象間的影響。
簡(jiǎn)化了對(duì)象間協(xié)議。
集中化了控制。
由于不再需要直接互傳消息,單個(gè)組件變得更加簡(jiǎn)單,而且容易處理。
由于不再需要 包含邏輯 來(lái)處理組件間的通信,組件變得更加通用。
以下情況中,應(yīng)該使用 Mediator 模式:
對(duì)象集合需要以 一個(gè)定義規(guī)范但復(fù)雜的方式 進(jìn)行通信。
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |