Java设计模式17职责链模式.pdf
《Java设计模式17职责链模式.pdf》由会员分享,可在线阅读,更多相关《Java设计模式17职责链模式.pdf(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第17章第17章职责链模式职责链模式主讲教师:程细柱韶关学院计算机系主讲教师:程细柱韶关学院计算机系本书主编:刘伟清华大学出版社本书主编:刘伟清华大学出版社本章教学内容?行为型模式?行为型模式概述行为型模式概述?行为型模式简介行为型模式简介?职责链模式?模式动机与定义模式动机与定义?模式结构与分析模式结构与分析?模式实例与解析模式实例与解析?模式效果与应用模式效果与应用?模式扩展模式扩展行为型模式?行为型模式概述?行为型模式行为型模式(Behavioral Pattern)是对是对在不同的对象之间划分责任和算法的抽象化在不同的对象之间划分责任和算法的抽象化。?行为型模式行为型模式不仅仅关注类和
2、对象的结构不仅仅关注类和对象的结构,而且,而且重点关注它们之间的相互作用重点关注它们之间的相互作用。?通过行为型模式,可以更加清晰地通过行为型模式,可以更加清晰地划分类与对象的职责划分类与对象的职责,并,并研究系统在运行时实例对象之间的交互研究系统在运行时实例对象之间的交互。在系统运行时,对象并不是孤立的,它们可以通过相互通信与协作完成某些复杂功能,一个对象在运行时也将影响到其他对象的运行。在系统运行时,对象并不是孤立的,它们可以通过相互通信与协作完成某些复杂功能,一个对象在运行时也将影响到其他对象的运行。行为型模式?行为型模式概述行为型模式概述?行为型模式分为行为型模式分为类行为型模式类行为
3、型模式和和对象行为型模式对象行为型模式两种:两种:类行为型模式类行为型模式:类的行为型模式:类的行为型模式使用继承关系在几个类之间分配行为使用继承关系在几个类之间分配行为,类行为型模式主要通过多态等方式来分配父类与子类的职责。,类行为型模式主要通过多态等方式来分配父类与子类的职责。对象行为型模式对象行为型模式:对象的行为型模式则:对象的行为型模式则使用对象的聚合关联关系来分配行为使用对象的聚合关联关系来分配行为,对象行为型模式主要是通过对象关联等方式来分配两个或多个类的职责。根据,对象行为型模式主要是通过对象关联等方式来分配两个或多个类的职责。根据“合成复用原则合成复用原则”,系统中要尽量使用
4、关联关系,系统中要尽量使用关联关系来取代继承关系来取代继承关系,因此大部分行为型设计模式都属于对象行为型设计模式。,因此大部分行为型设计模式都属于对象行为型设计模式。行为型模式?行为型模式简介?职责链模式职责链模式(Chain of Responsibility)?命令模式命令模式(Command)?解释器模式解释器模式(Interpreter)?迭代器模式迭代器模式(Iterator)?中介者模式中介者模式(Mediator)?备忘录模式备忘录模式(Memento)?观察者模式观察者模式(Observer)?状态模式状态模式(State)?策略模式策略模式(Strategy)?模板方法模式模
5、板方法模式(Template Method)?访问者模式访问者模式(Visitor)职责链模式?职责链模式职责链模式的模式动机的模式动机职责链模式?模式动机?职责链可以是职责链可以是一条直线、一个环或者一个树形结构一条直线、一个环或者一个树形结构,最,最常见的职责链是常见的职责链是直线型直线型,即沿着,即沿着一条单向的链一条单向的链来传递请求。来传递请求。?链上的每一个对象都是请求处理者,职责链模式可以链上的每一个对象都是请求处理者,职责链模式可以将将请求的处理者组织成一条链请求的处理者组织成一条链,并使请求,并使请求沿着链传递沿着链传递,由链上的处理者对请求进行相应的处理,由链上的处理者对请
6、求进行相应的处理,客户端无须关心客户端无须关心请求的处理细节以及请求的传递请求的处理细节以及请求的传递,只需将请求发送到链上即可,只需将请求发送到链上即可,将请求的发送者和请求的处理者解耦将请求的发送者和请求的处理者解耦。这就是职责链模式的模式动机。这就是职责链模式的模式动机。职责链模式?模式定义?职责链模式职责链模式(Chain of Responsibility Pattern):避免请求发送者与接收者耦合在一起,:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求让多个对象都有可能接收请求,将这些对象连接成一条链将这些对象连接成一条链,并且,并且沿着这条链传递请求沿着这条链传递
7、请求,直到有对象处理它为止直到有对象处理它为止。由于英文翻译的不同,职责链模式又称为。由于英文翻译的不同,职责链模式又称为责任链模式责任链模式,它是一种,它是一种对象行为型模式对象行为型模式。职责链模式?模式定义?Chain of Responsibility Pattern:Avoid couplingthe sender of a request to its receiver by giving more than one object a chance to handle the request.Chain the receiving objects and pass the requ
8、est along the chain until an object handles it.?Frequency of use:medium low 职责链模式?模式结构successorHandler-successor:Handler+handleRequest()ConcreteHandlerA+handleRequest()ConcreteHandlerB+handleRequest()Client职责链模式?模式结构?职责链模式包含如下角色:职责链模式包含如下角色:Handler:抽象处理者 ConcreteHandler:具体处理者 Client:客户类职责链模式?模式分析?在职
9、责链模式里,很多对象在职责链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链由每一个对象对其下家的引用而连接起来形成一条链。?请求在这条链上传递请求在这条链上传递,直到链上的某一个对象处理此请求为止。,直到链上的某一个对象处理此请求为止。?发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得,这使得系统可以在不影响客户端的情况下动态地重新组织链和分配责任系统可以在不影响客户端的情况下动态地重新组织链和分配责任。职责链模式?模式分析?典型的抽象处理者代码:典型的抽象处理者代码:public abstract
10、 class Handlerprotected Handler successor;public void setSuccessor(Handler successor)this.successor=successor;public abstract void handleRequest(String request);职责链模式?模式分析?典型的具体处理者代码:典型的具体处理者代码:public class ConcreteHandler extends Handlerpublic void handleRequest(String request)if(请求请求request满足条件满足条
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 设计 模式 17 职责
限制150内