欢迎来到天天文库
浏览记录
ID:49411903
大小:1.06 MB
页数:179页
时间:2020-02-06
《行为型软件设计模式.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第5章行为模式行为模式涉及到算法和对象间职责的分配areconcernedwithalgorithmsandtheassignmentofresponsibilitiesbetweenobjects.describethepatternsofcommunicationbetweenobjectsorclasses.characterizecomplexcontrolflow.(刻划了在运行时难以跟踪的复杂的控制流)行为类模式:使用继承在类间分配行为。行为对象模式:对象之间如何相互协作以完成单个对象无法完成的任务。行为模式(11种)Mediator(中介者)M
2、emento(备忘录)Observer(观察者)State(状态)Strategy(策略)Templatemethod(模板方法)Visitor(访问者)ChainOfResponsibility(职责链)Command(命令)Interpreter(解释器)Iterator(迭代器)5.1ChainOfResponsibility(职责链)–对象行为型模式意图使多个对象都有机会处理请求。Avoidcouplingthesenderofarequesttoitsreceiverbygivingmorethanoneobjectachancetohandlet
3、herequest.Chainthereceivingobjectsandpasstherequestalongthechainuntilanobjecthandlesit.5.1ChainOfResponsibility(职责链)–对象行为型模式动机一个图形用户界面中的上下文有关的帮助机制。用户在界面的任何部位上点击就可得到帮助信息。所得到的帮助信息依赖于点击的是界面的哪一部分及其上下文。在众多界面对象中必须有一个来处理帮助请求是谁呢?帮助信息的组织:从最具体到最一般。Motivation将处理对象连成一条链,请求沿链传递,直至被处理.客户不知道具体的处理
4、对象是谁.要求:每个在链上的对象都有一致的处理请求和访问链上后继者的接口。如上图,按钮、对话框和应用类都使用HelpHandler操作处理帮助请求。缺省实现是将请求转发给后继者。子类可重定义该操作提供处理。5.1ChainOfResponsibility(职责链)–对象行为型模式适用性有多个对象可以处理同一请求,具体由谁处理需要在运行时刻确定。你想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求。Youwanttoissuearequesttooneofseveralobjectswithoutspecifyingthereceiverexplic
5、itly.可处理一个请求的对象集合应被动态指定。Thesetofobjectsthatcanhandlearequestshouldbespecifieddynamically.结构Handler定义一个处理请求的接口。实现后继链(可选)ConcreteHandler处理它所负责的请求可访问其后继者forwardtosuccessorifitcan'thandletherequestClientinitiatestherequesttothefirstConcreteHandlerinthechain.典型的对象结构5.1ChainOfResponsibil
6、ity(职责链)–对象行为型模式协作当客户提交一个请求时,请求沿链传递直至有一个ConcreteHandler对象负责处理它。5.1ChainOfResponsibility(职责链)–对象行为型模式效果降低耦合度。receiverandsenderhavenoexplicitknowledgeofeachothercansimplifyobjectinteractions增强了给对象指派职责的灵活性。canaddorchangeresponsibilitiesbychangingthechainatrun-time.不保证被接受。requestmayfal
7、lofftheendofthechain5.1ChainOfResponsibility(职责链)–对象行为型模式实现实现后继者链定义新的链接使用已有的链接连接后继者。缺省实现:向后继者转发请求。表示请求。硬编码的操作调用一个处理函数,参数为一个请求码。需要用条件语句来区分请求代码。无法用类型安全的方法传递参数。使用独立的请求对象来封装请求参数。分派函数P151子类可通过重定义HandleRequest扩展该分派函数。5.1ChainOfResponsibility(职责链)–对象行为型模式代码示例P152-154。相关模式职责链常与Composite一起使
8、用。一个构件的父构件可作为它的后继。5.2Comma
此文档下载收益归作者所有