设计模式——11职责链模式与命令模式.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《设计模式——11职责链模式与命令模式.pptx》由会员分享,可在线阅读,更多相关《设计模式——11职责链模式与命令模式.pptx(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、职责链模式与职责链模式与命令模式命令模式Sunny Liu weiliu_内内 容容y行为模式行为模式 y职责链模式职责链模式y命令模式命令模式行为模式行为模式 y行为模式(Behavioral Pattern)是对在不同的对象之间划分责任和算法的抽象化。行为模式不仅仅是关于类和对象的,而且是关于它们之间的相互作用的。y行为模式分为类的行为模式和对象的行为模式两种:0类的行为模式:类的行为模式使用继承关系在几个类之间分配行为。0对象的行为模式:对象的行为模式则使用对象的聚合来分配行为。行为模式(续)行为模式(续) y行为模式: 0职责链模式(Chain of Responsibility) 0
2、命令模式(Command) 0迭代器模式(Iterator) 0中介者模式(Mediator) 0备忘录模式(Memento) 0观察者模式(Observer) 0状态模式(State) 0策略模式(Strategy) 0模板方法模式(Template Method) 0访问者模式(Visitor) 职责链模式职责链模式 y模式动机模式动机y在职责链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织链和分配责任。职
3、责链模式(续)职责链模式(续) y模式定义模式定义y职责链模式(Chain of Responsibility Pattern):避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。职责链模式是一种对象的行为模式。职责链模式(续)职责链模式(续) y模式结构模式结构successorHandler+ handleRequest ()ClientConcreteHandlerA+ handleRequest ()ConcreteHandleB+ handleRequest ()职责链模式(续)职责链模式(续) y参与
4、者参与者0Handler:抽象传递者0ConcreteHandler:具体传递者0Client:客户类职责链模式(续)职责链模式(续) y模式解释模式解释y一个定义处理请求(handleRequest)的接口,如果有多个请求,比如帮助请求、打印请求或格式化请求,我们怎么解决呢?职责链模式(续)职责链模式(续) y实例分析实例分析y实例:下达作战命令 successorOfficer#namesuccessor: String: Officer+Officer (String name)setSuccessor (Officer successor)handleRequest (): void:
5、 voidMisson-codeenemyNumber: String: int+setCode (String code)getCode ()setEnemyNumber (int enemyNumber)getEnemyNumber ()Misson (String code, int enemyNumber): void: getCode: void: intBanzhang+Banzhang (String name)handleRequest (): voidPaizhang+Banzhang (String name)handleRequest (): voidYingzhang+
6、Banzhang (String name)handleRequest (): void职责链模式(续)职责链模式(续) y实例分析实例分析y实例:下达作战命令(代码实现) 职责链模式(续)职责链模式(续) y模式优缺点模式优缺点0降低耦合度 0增强了给对象指派职责的灵活性 0不保证被接受 0扩展性差 职责链模式(续)职责链模式(续) y模式使用模式使用y在以下条件下可以使用职责链模式:0有多个对象可以处理同一个请求,哪个对象处理该请求由运行时刻自动确定。0在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。0可动态指定一组对象处理请求。职责链模式(续)职责链模式(续) y模式应用模式
7、应用0Java中的异常处理类似一种职责链模式 0Java事件模型(JDK 1.0或更早) 0纸牌游戏 0职责链模式可以应用于图形用户界面中 职责链模式(续)职责链模式(续) y模式深入模式深入y纯的与不纯的职责链模式y一个纯的职责链模式要求一个具体的处理者对象只能在两个行为中选择一个:一个是承担责任,二是把责任推给下家。不允许出现某一个具体处理者对象在承担了一部分责任后又把责任向下传的情况。在一个纯的职责链模式里面,一个请求必须被某一个处理者对象所接收;在一个不纯的职责链模式里面,一个请求可以最终不被任何接收端对象所接收。纯的职责链模式的例子是不容易找到的,一般看到的例子均是不纯的职责链模式的
8、实现。练练 习习y职责链模式中有哪些参与者,简述其职责。 y用职责链写一个专家系统,它一个接一个的尝试不同的解决方法,直到找到某个解决问题的方法为止。要求专家系统可以动态的添加解决方法。测试方法用字符串匹配,但是当匹配以后专家系统必须返回适当类型的ProblemSolver对象。考虑下,这里还会用到什么其它的模式? 命令模式命令模式 y模式动机模式动机y在软件开发过程中,有时我们需要向某些对象发送请求,但是不知道 “被请求的操作” 或 “请求的接受者”的任何信息。在面向过程的程序设计语言中,这类通信是通过回调函数来完成的:在某个地方登记这个函数,然后在后面调用它。在面向对象程序中,comman
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 模式 11 职责 命令
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内