设计模式职责链模式学习教案.ppt
上传人:王子****青蛙 上传时间:2024-09-13 格式:PPT 页数:35 大小:1.5MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

设计模式职责链模式学习教案.ppt

设计模式职责链模式学习教案.ppt

预览

免费试读已结束,剩余 25 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

会计学问题(wèntí)(Problem)问题(wèntí)(Problem)问题(wèntí)(Problem)问题(wèntí)(Problem)主要(zhǔyào)内容模式动机模式名称:职责链模式(ChainofResponsibility)职责链可以是一条直线、一个环或者一个树形结构(jiégòu),最常见的职责链是直线型,即沿着一条单向的链来传递请求。模式动机(dòngjī)链上的每一个对象都是请求处理者,职责链模式可以将请求的处理者组织成一条链,并使请求沿着链传递,由链上的处理者对请求进行相应的处理。客户端无须关心请求的处理细节以及请求的传递,只需将请求发送到链上即可,将请求的发送者和请求的处理者解耦。这就是职责链模式的模式动机(dòngjī)。职责(zhízé)链模式(ChainofResponsibility)职责(zhízé)链模式(ChainofResponsibility)职责(zhízé)链模式(ChainofResponsibility)职责(zhízé)链模式(ChainofResponsibility)职责(zhízé)链模式(ChainofResponsibility)职责(zhízé)链模式(ChainofResponsibility)职责(zhízé)链模式(ChainofResponsibility)职责(zhízé)链模式(ChainofResponsibility)职责(zhízé)链模式(ChainofResponsibility)职责(zhízé)链模式(ChainofResponsibility)职责(zhízé)链模式(ChainofResponsibility)职责(zhízé)链模式(ChainofResponsibility)模式(móshì)结构参与者Handler:抽象处理者ConcreteHandler:具体(jùtǐ)处理者Client:客户类职责(zhízé)链模式(ChainofResponsibility)职责链模式和状态模式比较职责链模式:当客户提交一个请求时,请求是沿链传递直至有一个ConcreteHander对象负责处理它。链中的对象自己并不知道链的结构,在运行时确定。结果是职责链可简化对象的相互连接,它们仅需保持一个指向其后继者的引用或指针,而不需要(xūyào)保持它所有的候选接受者。这也就大大降低了耦合度了。也就是说,我们可以随时地增加或修改处理一个请求的结构。增强了给对象指派职责的灵活性。职责链模式和状态模式比较状态模式:状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。定义新的子类可以很容易地增加新的状态和转换。这样(zhèyàng)做的目的是为了消除庞大的条件分支语句。状态模式通过把各种状态转移逻辑分布到State的子类之间,来减少相互间的依赖。职责链模式和状态(zhuàngtài)模式比较请假例子,找班长请假,班长只能请半天,否则班长向老师申请,如果请假时间超过一周,老师要跟副年级主任请示,如果请假超出一个月,主任要跟年级正主任请示,然后被批准,或不被批准。问题:如果班长请假了,用状态(zhuàngtài)模式,其他学生都请不了假了,也就是如果状态(zhuàngtài)模式中任何一环缺失的话,这个事件都无法进行下去。职责链模式(móshì)和状态模式(móshì)比较职责链模式(móshì)的链式在客户端连接的,也就是说,如果我们请假,请假制度一旦改变,比如说我们不需要班长,或者是先请求老师后直接请求主任或者中间多了一个环节,都是很容易实现的,所以,职责链模式(móshì)要比状态模式(móshì)灵活很多。职责(zhízé)链模式和状态模式比较职责(zhízé)链模式与状态模式的最大的不同是设置自己的下一级的问题上,状态模式是在类的设计阶段就定好的,不能在客户端改变,而职责(zhízé)链的下一级是在客户端自己来确定的。职责(zhízé)链模式注重职责(zhízé)的传递,由客户端配置;状态模式注重对象状态的转换,转换过程对客户端是透明的。职责(zhízé)链模式的优点如下降低耦合度可简化对象的相互连接增强给对象指派职责(zhízé)的灵活性增加新的请求处理类很方便职责链模式的缺点如下不能保证请求一定被接收。系统性能将受到一定影响,而且在进行代码调试时不太方便;可能会造成(zàochénꞬ)循环调用。模式使用在以下情况(qíngkuàng)下可以使用职责链模式:有多个对象可以处理同一个请求,具体哪个对象处理该请求由运行时刻自动确定。在不明确指定接收者的情况(qíngkuàng