南京大学:《面向对象技术 OOT》课程教学资源(PPT课件讲稿)设计模式 Design Pattern(3)

Design Pattern(3) 设计模式(3 Institute of Computer Software 2021/2/5 Nanjing University
设计模式(3) Design Pattern (3) 2021/2/5 Institute of Computer Software Nanjing University 1

最病 过摘要 2 Design Patterns a Why, What, How a Creational, Structural and Behavioral Patterns Institute of Computer Software 2021/215 Nanjing University
摘要 Design Patterns Why, What, How Creational, Structural and Behavioral Patterns 2021/2/5 Institute of Computer Software Nanjing University 2

最病 A Behavioral Patterns 口行为模式是对在不同的对象之间划分责任和算 法的抽象化。行为模式不仅仅是关于类和对象 的,而且关注它们之间的通信模式。 口类的行为模式:使用继承关系在几个类之间分配行 *-Interpreter template Method 口对象的行为模式:使用对象的聚合来分配行为 Institute of Computer Software 2021/215 Nanjing University
Behavioral Patterns 行为模式是对在不同的对象之间划分责任和算 法的抽象化。行为模式不仅仅是关于类和对象 的,而且关注它们之间的通信模式。 类的行为模式:使用继承关系在几个类之间分配行 为 – Interpreter, Template Method 对象的行为模式:使用对象的聚合来分配行为 2021/2/5 Institute of Computer Software Nanjing University 3

最病 A Behavioral Patterns a Chain of responsibility 口 Command 口 Interpreter 口| terator 口 Mediator 口 Memento 口○ oserver a State 口 Strategy 口 Template Method 口 Visitor Institute of Computer Software 2021/215 Nanjing University
Behavioral Patterns Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor 2021/2/5 Institute of Computer Software Nanjing University 4

最病 A Chain of Responsibility 5 口| ntent 口使多个对象都有机会处理请求,从而避免请求的发送者和接 收者之间的耦合关系。将这些对象连成一条链,并沿着这条 链传递该请求,直到有一个对象处理它为止。 口 Motivation 口应根据普遍性即从最特殊到最普遍的顺序来组织帮助信息 比如用户界面中会有一个对象来处理帮助请求,但是哪一个 对象则取决于上下文 口给多个对象处理一个请求的机会,从而解耦发送者和接受者 Institute of Computer Software 2021/215 Nanjing University
Chain of Responsibility Intent 使多个对象都有机会处理请求,从而避免请求的发送者和接 收者之间的耦合关系。将这些对象连成一条链,并沿着这条 链传递该请求,直到有一个对象处理它为止。 Motivation 应根据普遍性即从最特殊到最普遍的顺序来组织帮助信息, 比如用户界面中会有一个对象来处理帮助请求,但是哪一个 对象则取决于上下文 给多个对象处理一个请求的机会,从而解耦发送者和接受者 2021/2/5 Institute of Computer Software Nanjing University 5

最病 Exampl e 6 asaveDlalog handler aPrntButton anApplleatilon handler handler aPrintDlalog handler anoKButton handler specific aPrintButton aPrintDialog anApplication HandleHelpO HandleHelpo Institute of Computer Software 2021/215 Nanjing University
Example 2021/2/5 Institute of Computer Software Nanjing University 6

最病 E Applicability 7 口有多个对象可以处理一个请求,哪个对象处理 该请求则在运行时刻确定 口在不明确指定接收者的情况下,向多个对象中 的一个提交一个请求 口可处理一个请求的对象集合应被动态制定 Institute of Computer Software 2021/215 Nanjing University
Applicability 有多个对象可以处理一个请求,哪个对象处理 该请求则在运行时刻确定 在不明确指定接收者的情况下,向多个对象中 的一个提交一个请求 可处理一个请求的对象集合应被动态制定 2021/2/5 Institute of Computer Software Nanjing University 7

最病 o Structure 8 SUccessor Clent Handker HandleRequesto c。 ncreteHandler Concretehandlen HandleRequesto Handle Request Institute of Computer Software 2021/215 Nanjing University
Structure 2021/2/5 Institute of Computer Software Nanjing University 8

最病 A Participants 9 口Hand|er 口定义一个处理请求的接口 口(可选)实现后继链 口 Concretehand|er 口处理它所负责的请求 口可访问它的后继者 口如果可处理该请求,就处理之;否则将该请求转发给它的后 继者 a Client 口提交请求 Institute of Computer Software 2021/215 Nanjing University
Participants Handler 定义一个处理请求的接口 (可选)实现后继链 ConcreteHandler 处理它所负责的请求 可访问它的后继者 如果可处理该请求,就处理之;否则将该请求转发给它的后 继者 Client 提交请求 2021/2/5 Institute of Computer Software Nanjing University 9

最病 Collaboration 口当 Client提交一个请求时,请求沿链传递直至有 个 Concretehandler对象负责处理它 a client aConcreteHandler cHandler aConcreteHandler successor successor Sample Code Institute of Computer Software 2021/215 Nanjing University
Collaboration 当Client提交一个请求时,请求沿链传递直至有 一个ConcreteHandler对象负责处理它 2021/2/5 Institute of Computer Software Nanjing University 10 Sample Code
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 安徽理工大学:《汇编语言》课程教学资源(PPT课件讲稿)第二章 80x86计算机组织.ppt
- SVM原理与应用(PPT讲稿).pptx
- MSC Software Corporation:Dynamic System Modeling, Simulation, and Analysis Using MSC.EASY5(Advanced Class).ppt
- 《程序设计语言原理》课程教学资源(PPT课件讲稿)形式语义学 Formal Semantics.ppt
- 中国科学技术大学:《算法设计与分析》课程教学资源(PPT课件讲稿)第一部分 概率算法(黄刘生).ppt
- 《计算机组成原理》课程教学资源(PPT课件讲稿)第二章 电子计算机中信息的表示及其运算.ppt
- 虚拟存储(PPT课件讲稿)Virtual Memory.ppt
- Network Alignment(PPT讲稿)Treating Networks as Wireless Interference Channel.pptx
- 中国科学技术大学:《高级操作系统 Advanced Operating System》课程教学资源(PPT课件讲稿)第四章 分布式进程和处理机管理.ppt
- 东南大学:《操作系统概念 Operating System Concepts》课程教学资源(PPT课件讲稿)08 Main Memory(主讲:张柏礼).ppt
- 《高级语言程序设计》课程教学资源(试卷习题)试题三(无答案).doc
- 《数字图像处理》课程教学资源(PPT课件)第五章 代数运算.ppt
- 南京大学:《面向对象技术 OOT》课程教学资源(PPT课件讲稿)类和对象 Class and Object.ppt
- Detecting Evasion Attack at High Speed without Reassembly.ppt
- 《数字图像处理》课程教学资源(PPT课件)第七章 图像分割.ppt
- 中国科学技术大学:《信息论与编码技术》课程教学资源(PPT课件讲稿)第2章 离散信源及其信息测度.pptx
- 清华大学出版社:《计算机网络安全与应用技术》课程教学资源(PPT课件讲稿)第6章 黑客原理与防范措施.ppt
- 大连工业大学:《数据结构》课程教学资源(PPT课件讲稿,共十章,路莹).pps
- 哈尔滨工业大学:词义消歧(PPT讲稿)Word sense disambiguation.ppt
- 香港城市大学:Adaptive Random Test Case Prioritization(PPT讲稿).pptx
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第2章 数据类型与常用库函数.ppt
- 山东大学:《数据结构》课程教学资源(PPT课件讲稿)第5章 堆栈(STACKS)Restricted version of a linear list.ppt
- 澳门大学:统计机器翻译领域适应性研究 Domain Adaptation for Statistical Machine Translation Master Defense.pptx
- 北京大学:《高级软件工程》课程教学资源(PPT课件讲稿)第九讲 静态代码的可信性分析概述.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第10章 指针.ppt
- 南京大学:《面向对象技术 OOT》课程教学资源(PPT课件讲稿)分布对象 Distributed Objects(1).ppt
- 四川大学:《操作系统 Operating System》课程教学资源(PPT课件讲稿)Chapter 1 Computer System Overview.ppt
- 安徽理工大学:《算法设计与分析 Algorithm Design and Analysis》课程教学资源(PPT课件讲稿)第一章 导引与基本数据结构.ppt
- 《结构化程序设计》课程教学资源(PPT课件讲稿)第4章 VB控制结构.ppt
- 香港城市大学:PERFORMANCE ANALYSIS OF CIRCUIT SWITCHED NETWORKS(PPT讲稿).pptx
- 上海交通大学:《计算机组成原理 Computer Organization》课程教学资源(PPT课件讲稿)Chapter 4A The Processor, Part A.pptx
- 清华大学出版社:《计算机网络安全与应用技术》课程教学资源(PPT课件讲稿)第5章 Windows NT/2000的安全与保护措施.ppt
- 《人工智能》课程教学资源(PPT课件讲稿)第13章 智能优化计算简介.ppt
- 《计算机网络技术及应用》课程教学资源(PPT课件讲稿)第十一章 网络安全.ppt
- 《数字图像处理》课程教学资源(PPT课件讲稿)第八章 形态学处理.ppt
- 北京师范大学现代远程教育:《计算机应用基础》课程教学资源(PPT课件讲稿)第四篇 数据处理与数据分析.ppsx
- 《ARM Cortex-M3权威指南》课程教学资源(PPT课件讲稿)Cortex M3 存储系统访问.pptx
- 《人工智能》课程教学资源(PPT课件讲稿)Ch10 Auto-encoders(Auto and variational encoders v.9r6).pptx
- 西安电子科技大学:《操作系统 Operating Systems》课程教学资源(PPT课件讲稿)Chapter 05 输入输出 Input/Output.ppt
- 《计算机应用基础》课程教学资源(PPT课件讲稿)第5章 文件文档工具.ppt