第14次课uml06.面向对象的设计原则-通信图
合集下载
面向对象的开闭原则PPT课件

(2) ChartDisplay类针对抽象图表类进行编程,由客户端来决定使 用哪种具体图表。
重构后结构如图2所示:
.
11
• 在我们最初编写代码的时候,我们假设变化不会发生,但最后变化发生的时
候,可以通过创建抽象来隔离以后将要发生的同类变化。
开闭原则是面向对象设计中“可复用设计”的基础,是面向对象设计中最重
.
4
现在的问题是,需求变了,要求还要实现一个 减法的功能,这也很简单,如图示
.
5
如果需求再变,还要求能实现乘法和除法的功能,依然简 单,如图示
.
6
• 从第2和第3步来看,很明显,在需求改变,需要引进新的功能的时候, 做法是在已有的类的基础上通过新添方法来实现功能,假设在第2步之后, 第3步的时候发现加法和减法功能 最终都没有用到,反而乘法和除法需要用到,那么在第3步的时候就要 推翻第2步之前的实现,在需求发生改变需要引进新的功能的时候,就要 推翻整个之前的系统,很明显这样的做法是不可取的,说明设计上出现
在开闭原则的定义中,软件实体可以指一个软件模块、一 个由多个类组成的局部结构或一个独立的类。
.
2
任何软件都需要面临一个很重要的问题,即它们的需求会 随时间的推移而发生变化。当软件系统需要面对新的需求时, 我们应该尽量保证系统的设计框架是稳定的。
而抽象化是开闭原则的关键
.
3
来看一个简单的实例
假设现在需要实现一个加法的功能,很简单,如图示
了问题,这个缺陷明显的是违反了OCP(开闭原则)。
需求总是在变的,如果可能,就要做到尽量不要去修改已有的实现,而 应该通过扩展的手段来稳定需求的变动。
.
7
OCP原则替换图
.
重构后结构如图2所示:
.
11
• 在我们最初编写代码的时候,我们假设变化不会发生,但最后变化发生的时
候,可以通过创建抽象来隔离以后将要发生的同类变化。
开闭原则是面向对象设计中“可复用设计”的基础,是面向对象设计中最重
.
4
现在的问题是,需求变了,要求还要实现一个 减法的功能,这也很简单,如图示
.
5
如果需求再变,还要求能实现乘法和除法的功能,依然简 单,如图示
.
6
• 从第2和第3步来看,很明显,在需求改变,需要引进新的功能的时候, 做法是在已有的类的基础上通过新添方法来实现功能,假设在第2步之后, 第3步的时候发现加法和减法功能 最终都没有用到,反而乘法和除法需要用到,那么在第3步的时候就要 推翻第2步之前的实现,在需求发生改变需要引进新的功能的时候,就要 推翻整个之前的系统,很明显这样的做法是不可取的,说明设计上出现
在开闭原则的定义中,软件实体可以指一个软件模块、一 个由多个类组成的局部结构或一个独立的类。
.
2
任何软件都需要面临一个很重要的问题,即它们的需求会 随时间的推移而发生变化。当软件系统需要面对新的需求时, 我们应该尽量保证系统的设计框架是稳定的。
而抽象化是开闭原则的关键
.
3
来看一个简单的实例
假设现在需要实现一个加法的功能,很简单,如图示
了问题,这个缺陷明显的是违反了OCP(开闭原则)。
需求总是在变的,如果可能,就要做到尽量不要去修改已有的实现,而 应该通过扩展的手段来稳定需求的变动。
.
7
OCP原则替换图
.
面向对象设计精品PPT课件

理想的设计变动情况
2021/1/9
大连理工大学软件学院
15
11.4 系统分解
• 大多数系统的面向对象设计模型,在逻辑上都由 四大部分组成。分别是问题域子系统,人-机交互 子系统、任务管理子系统和数据管理子系统。
• 这四个子系统如果重要程度和规模过大,在设计 过程中应该进一步划分成更小的子系统,规模过 小的可合并在其他子系统中。
1. 2. 3. 4. 不要提供太多服务(保持适当内聚的基础上)
2021/1/9
大连理工大学软件学院
13
•
– 消息中的参数不要超过3个。
•
– 设计出来的类中的服务通常都很小,有的仅 3~5行源程序语句,可以用一个动词和一个 宾语的简单句子描述功能。
• 把设计变动减至最小(结构稳定)
– 设计质量越高,设计结果保持不变的时间也 越长 (Refactoring)
– 单向交互比双向交互更容易理解,也更容易 设计和修改,因此应该尽量使用客户—供应 商关系。
2021/1/9
大连理工大学软件学院
18
• • 把子系统组织成完整的系统时,有水平层次组织
1. 层次组织
– 把软件系统组织成层次系统,每层是一个子系统。 – 上层在下层的基础上建立,下层为实现上层功能而提
供必要的服务。
2021/1/9
大连理工大学软件学院
11
11.2 启发规则
• • 提高软件可维护性和可重用性重要措施。
1. 用词一致 2. 使用已有的协议(重载) 3. 减少消息模式的数目 4. 避免模糊的定义
2021/1/9
大连理工大学软件学院
12
• 一般—
– 应该使类等级中包含的层次数适当。
UML通信图

消息
❖ 通信图中的消息类型与顺序图中的相同, 只不过为了说明交互过程中消息的时间顺 序,需要给消息添加顺序号。
❖ 顺序号是消息的一个数字前缀,是一个整 数,由1开始递增,每个消息都必须由唯一 的顺序号。可以通过点表示法代表控制的 嵌套关系。
❖ 嵌套可以具有任意深度。与顺序图相比, 通信图可以显示更为复杂的分支。
通信图
课程内容
❖概念 ❖通信图组成元素- 对象、链和消息 ❖ 顺序图与通信图的比较 ❖ 顺序图与通信图的互换 ❖ 通信图建模技术 ❖实例——图书馆管理系统的通信图
概念
❖ 通信图描述的是和对象结构相关的信息。 ❖ 通信图的用途是表示一个类操作的实现。 ❖ 通信图对交互中有意义的对象和对象之间
的链建模。 ❖ 在UML中,通信图用几何排列来表示交互
ห้องสมุดไป่ตู้
通信图的组成
❖链
❖ 通信图中链的符号和对象图中链所用的符 号是一样的,即一条连接两个类角色的实 线。
❖ 对于链接还可以加上“角色”与“约束”, 在链角色上附加的约束有global(全局), local(局部),parameter(参数),self(自 身),broadcast(广播)。
通信图的组成
1.1.1b,…
通信图组成
监护条件:
通常是用来表示分支的,也就是表示“如果条件为 true,才发送消息”
通信图组成
多重对象
多个对象的集合,往往是同类的对象; 如果消息同时发给多个对象,则用多重对象表示; 在顺序图中仍然显示为单对象一样的图标;
通信图组成
活动对象
拥有控制线程的对象,能够发起控制活动; 某种意义下,代表线程;
: Maintenance Window
3: update( )
❖ 通信图中的消息类型与顺序图中的相同, 只不过为了说明交互过程中消息的时间顺 序,需要给消息添加顺序号。
❖ 顺序号是消息的一个数字前缀,是一个整 数,由1开始递增,每个消息都必须由唯一 的顺序号。可以通过点表示法代表控制的 嵌套关系。
❖ 嵌套可以具有任意深度。与顺序图相比, 通信图可以显示更为复杂的分支。
通信图
课程内容
❖概念 ❖通信图组成元素- 对象、链和消息 ❖ 顺序图与通信图的比较 ❖ 顺序图与通信图的互换 ❖ 通信图建模技术 ❖实例——图书馆管理系统的通信图
概念
❖ 通信图描述的是和对象结构相关的信息。 ❖ 通信图的用途是表示一个类操作的实现。 ❖ 通信图对交互中有意义的对象和对象之间
的链建模。 ❖ 在UML中,通信图用几何排列来表示交互
ห้องสมุดไป่ตู้
通信图的组成
❖链
❖ 通信图中链的符号和对象图中链所用的符 号是一样的,即一条连接两个类角色的实 线。
❖ 对于链接还可以加上“角色”与“约束”, 在链角色上附加的约束有global(全局), local(局部),parameter(参数),self(自 身),broadcast(广播)。
通信图的组成
1.1.1b,…
通信图组成
监护条件:
通常是用来表示分支的,也就是表示“如果条件为 true,才发送消息”
通信图组成
多重对象
多个对象的集合,往往是同类的对象; 如果消息同时发给多个对象,则用多重对象表示; 在顺序图中仍然显示为单对象一样的图标;
通信图组成
活动对象
拥有控制线程的对象,能够发起控制活动; 某种意义下,代表线程;
: Maintenance Window
3: update( )
面向对象设计原则ppt

如果 fun方法的参数Rectangle 指向的是一个正方形 ,产生的结果就会让人产生迷惑。 结果是4! 对于写fun方法的人来讲,他会认为应该是2.
Square对象的行为方式和函数fun所期望的Rectangle对象的行为方式不相容.
01
对象的行为方式才是软件真正所关注的问题.(关心是不是想象中的那种行为)
面向对象设计原则
宋俊杰
重新认识一下面向对象
了解面向对象设计原则
目标
并不是面向对象的全部,甚至只是浅陋的面向对象
通过面向对象编程语言(OOPL)认识到的面向对象,
01
我们不能依赖编程语言的面向对象机制来掌握面向对象 OOPL的三大机制“封装、继承、多态”可以表达面向对 象的概念,但是没有刻画出面向对象的核心精神。 可以用这三大机制做出好的“面向对象设计”也可以做出差的“面向对象的设计” .
02
abstract class Employee{ … public abstract int getSalary(); } class Sales extends Employee[ … public int getSalary(){ … } } .
class Engineer extends Employee{ … public int getSalary(){ … } } // 显示工资程序 Employee e = emFactory.getEmployee(id); System.out.println(e.getSalary());
要依赖于抽象不要依赖于具体
抽象不应该依赖于细节,细节应该依赖于抽象
另一种说法:要对接口编程,不要针对实现编程.0102 Nhomakorabea03
依赖倒置原则 DIP
Square对象的行为方式和函数fun所期望的Rectangle对象的行为方式不相容.
01
对象的行为方式才是软件真正所关注的问题.(关心是不是想象中的那种行为)
面向对象设计原则
宋俊杰
重新认识一下面向对象
了解面向对象设计原则
目标
并不是面向对象的全部,甚至只是浅陋的面向对象
通过面向对象编程语言(OOPL)认识到的面向对象,
01
我们不能依赖编程语言的面向对象机制来掌握面向对象 OOPL的三大机制“封装、继承、多态”可以表达面向对 象的概念,但是没有刻画出面向对象的核心精神。 可以用这三大机制做出好的“面向对象设计”也可以做出差的“面向对象的设计” .
02
abstract class Employee{ … public abstract int getSalary(); } class Sales extends Employee[ … public int getSalary(){ … } } .
class Engineer extends Employee{ … public int getSalary(){ … } } // 显示工资程序 Employee e = emFactory.getEmployee(id); System.out.println(e.getSalary());
要依赖于抽象不要依赖于具体
抽象不应该依赖于细节,细节应该依赖于抽象
另一种说法:要对接口编程,不要针对实现编程.0102 Nhomakorabea03
依赖倒置原则 DIP
统一建模语言UML课件-通讯图

Comparing sequence and communication diagrams
根据比较的结果
如果关注一个特定交互中的消息流,使用顺序图 如果关注交互的参与者之间的链接,使用通讯图 时间允许的话,两种都使用
The Sales Manager directs a Salesperson to sell the product according to the campaign.
The Salesperson makes sales calls to potential customers in order of their priority.
同步
a sequence of possible interactions:
The Senior VP of Marketing asks the VP of Sales to create a campaign for a particular product.
The VP of Sales creates the campaign and tells the Sales Manager to assign the campaign to a Salesperson.
通讯图
通讯图和对象图比较
对象图表示了对象之间的链接关系,是静态的. 通讯图是对象图的扩展,除了说明对象之间的
关系,还要说明对象之间的通讯,是动态的.
通讯图
通讯图中的消息仍然用箭头表示,箭头放 在链接的旁边.
箭头的意义和顺序图相同 箭头上还还可以给出消息的名称,消息的
顺序等。
消息
通讯图上的消息使用数字编号来表示次序
Synchronization
Message synchronization in a communication diagram.
根据比较的结果
如果关注一个特定交互中的消息流,使用顺序图 如果关注交互的参与者之间的链接,使用通讯图 时间允许的话,两种都使用
The Sales Manager directs a Salesperson to sell the product according to the campaign.
The Salesperson makes sales calls to potential customers in order of their priority.
同步
a sequence of possible interactions:
The Senior VP of Marketing asks the VP of Sales to create a campaign for a particular product.
The VP of Sales creates the campaign and tells the Sales Manager to assign the campaign to a Salesperson.
通讯图
通讯图和对象图比较
对象图表示了对象之间的链接关系,是静态的. 通讯图是对象图的扩展,除了说明对象之间的
关系,还要说明对象之间的通讯,是动态的.
通讯图
通讯图中的消息仍然用箭头表示,箭头放 在链接的旁边.
箭头的意义和顺序图相同 箭头上还还可以给出消息的名称,消息的
顺序等。
消息
通讯图上的消息使用数字编号来表示次序
Synchronization
Message synchronization in a communication diagram.
[06]一些面向对象的设计原则_图文
![[06]一些面向对象的设计原则_图文](https://img.taocdn.com/s3/m/e4673913482fb4daa58d4b68.png)
第二个例子:鸵鸟不是鸟
如果我们拿一种飞鸟来测试这段代码,没有问题,结果正确,符合我 们的预期,系统输出了飞鸟飞越黄河的所需要的时间;如果我们再拿 鸵鸟来测试这段代码,结果代码发生了系统除零的异常,明显不符合 我们的预期。 对于TestBird类而言,它只是Bird类的一个消费者,它在使用Bird 类的时候,只需要根据Bird类提供的方法进行相应的使用,根本不会 关心鸵鸟会不会飞这样的问题,而且也无须知道。它就是要按照“所 需时间 = 黄河的宽度 / 鸟的飞行速度”的规则来计算鸟飞越黄河所需 要的时间。 我们得出结论:在calcFlyTime方法中,Bird类型的参数是不能被 Ostrich类型的参数所代替,如果进行了替换就得不到预期结果。因此 ,Ostrich类和Bird类之间的继承关系违反了里氏代换原则,它们之间 的继承关系不成立,鸵鸟不是鸟。
[06]一些面向对象的设计原则_图文.ppt
开闭原则(OCP)
开闭原则是面向对象程序设计的第一原则,这个 原则最早由Bertrand Meyer提出:“Software entities should be open for extension,but closed for modification”,即一个软件实体应该对扩展开放,对 修改关闭。也就是说,当一个软件需要增加或者修改 某些功能时候,应该尽可能的只是在原来的实体中增 加代码,而不是修改代码。开闭原则保证了系统具有 一定的稳定性,同时保证了系统的灵活性。开闭原则 的另外一个叫法称为“对可变性的封装原则”。
第二个例子:鸵鸟不是鸟
“鸵鸟非鸟”也是一个理解里氏代换原则的经典的例子。“鸵鸟非鸟”的另一个版本是“企 鹅非鸟”,这两种说法本质上没有区别,前提条件都是这种鸟不会飞。生物学中对于鸟 类的定义:“恒温动物,卵生,全身披有羽毛,身体呈流线形,有角质的喙,眼在头的 两侧。前肢退化成翼,后肢有鳞状外皮,有四趾”。所以,从生物学角度来看,鸵鸟肯 定是一种鸟。 我们设计一个与鸟有关的系统,鸵鸟类顺理成章地由鸟类派生,鸟类所有的特性和行 为都被鸵鸟类继承。大多数的鸟类在人们的印象中都是会飞的,所以,我们给鸟类设 计了一个名字为fly的方法,还给出了与飞行相关的一些属性,比如飞行速度(velocity) 。 鸟类Bird: class Bird { double velocity; public :
面向对象设计7大原则设计7大原则.ppt

接口隔离原则实例
• 下图展示了一个拥有多个客户类的系统,在系统中定义了一个巨大的接口( 胖接口)AbstractService来服务所有的客户类。可以使用接口隔离原则对其进 行重构。
接口隔离原则实例
ClientA ClientB ClientC
AbstractServiceA
+ operatorA () : void ... AbstractServiceB
• 类的职责主要包括两个方面:数据职责和行为职责,数据职责通过其 属性来体现,而行为职责通过其方法来体现。
• 单一职责原则是实现高内聚、低耦合的指导方针,在很多代码重构手 法中都能找到它的存在,它是最简单但又最难运用的原则,需要设计 人员发现类的不同职责并将其分离,而发现类的多重职责需要设计人 员具有较强的分析设计能力和相关重构经验。
依赖倒转原则实例
• 需求说明
• 由于需求的变化,该系统可能需要增加新的数据源或者新的文件格式 ,每增加一个新类型的数据源或者新类型的文件格式,客户类 MainClass都需要修改源代码,以便使用新的类,但违背了开闭原则。 现使用依赖倒转原则对其进行重构。
依赖倒转原则实例
接口隔离原则
• 接口隔离原则定义
• 里氏代换原则是实现开闭原则的重要方式之一,由于使用 基类对象的地方都可以使用子类对象,因此在程序中尽量 使用基类类型来对对象进行定义,而在运行时再确定其子 类类型,用子类对象来替换父类对象。
里氏代换原则分析
喜欢动物喜欢猫 因为猫是动物 ☺
里氏代换原则实例
• 系统需要实现对重要数据(如用户密码)的加密处理,在数据操作类 (DataOperator)中需要调用加密类中定义的加密算法,系统提供了两个不同的 加密类,CipherA和CipherB,它们实现不同的加密方法,在DataOperator中可 以选择其中的一个实现加密操作。如图所示:
UML-第6章--通信图

2010年11月09日(十) 2010年11月11日 2010年11月16日(十一) 2010年11月23日(十二) 2010年11月25日 2010年11月30日(十三) 2010年12月07日(十四) 2010年12月09日 2010年12月14日(十五) 2010年12月21日(十六) 2010年12月23日
通信链接
链接可以使用parameter或者local固化类型。 parameter固化类型指示一个对象是另一个对 象的参数,而local固化类型指定一个对象像 变量一样在其他对象中具有局部作用域。
:BorrowDialog <<Local>> <<Parameter>> :Borrower :loan <<Parameter>> :Book
顺序图强调的是交互的时间顺序,而通信图强调 的是交互的情况和参与交互的对象的整体组织。 顺序图按照时间顺序布图,而通信图按照空间组 织布图。
对象
由于在通信图中要建模 系统的交互,而类在运 行时不做任何工作,系 统的交互是由类的实例 化形式(对象)完成所 有的工作,因此,首要 关心的问题是对象之间 交互。顺序图中可以使 用3种类型的对象实例:
UML---面向对象设计与分析
谭观音 tgy8848@
课程目录
2010年09月07日 (一) 2010年09月14日(二) 2010年09月16日(二) 2008年09月21日(三) 2008年09月28日(四) 2008年09月30日 2008年10月05日(五)* 2008年10月12日(六) 2008年10月14日 2008年10月19日(七) 2008年10月26日(八) 2008年10月28日 2008年11月02日(九)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象分析与设计
Object-Oriented Analysis & Design
2013-2014学年第一学期软件111-112班 计控学院软件工程系 吴迪
学习路线图
1 OO 2 UML 5 8 6 OOP DP 7 9
3
4
: :
… Case-Study …
学习路线图
10 …… …… …… ……
在消息前在星号(*) 在消息后加<<broadcast>>
2、消息从一个对象到另一个对象的多次发送
实例 存款
19
20
练习
21
22
23
课堂练习
PrintServer
件
制 控 5.
求打 印文
打 印
3.1.队列是否为空 3.2.添加到队列 4.返回打印文件
1.打印文件
Computer
2.请
Printer
Queue
通信图的Rose建模
一、新建通信图
方法1:
方法2:
二、重命名通信图并双击打开
对象 链接 反身链接 消息 反向消息
三、添加对象 方法1: a.将事先创建的类从浏览器拖到通信图中
b.双击对象,在弹出的窗口中设置对象的名称
方法2: a.通过工具栏的对象按纽在通信图中添加一个对象
b.双击对象,在弹出的窗口中设置对象名和类
通信图
5
顺序图 交互图
通信图
顺序图与通信图均显示了对象间的交互,但它们强调了 不同的方面。 顺序图强调交互的时间次序,但没有显式地指明对象间 的关系。 通信图清晰地显示了对象间的关系,但交互的时间次序 不明显,必须从消息的序号中获得。
顺序图按照时间顺序布图,而通信图按照空间结构布图 通信图与顺序图在语义上是等价的,二者可以相互转换。
通信图组成
一、对象
ObjectA ObjectB:ClassB :ClassC 未指定对象所属类名 完全限定对ቤተ መጻሕፍቲ ባይዱ名 未指定对象名
10
二、链接
1、链接的概念 链接用来在通信图中关联对象,链接的目的是让消息在不同 系统对象之间传递。 2、链接的符号表示 链接以连接两个对象的单一线条表示
三、消息
1、消息的概念 消息是通信图中对象与对象之间通信的方式 2、消息的类型与符号表示
多态:同一个操作(操作名相同,参数相同)被不同的对 象接收时,可产生不同的动作或执行效果。
消息的发送者不必知道接收消息的对象所属的类,只提供 一个操作的请求,接收者知道如何处理这一请求。
(2)广播消息 所谓广播消息是把多个对象作为它的目标对象的消息。广播 消息一般是异步消息,广播的发送者不必等待返回消息。
六、设置消息的类型
双击消息,在弹出的对话框选择”detail”选项卡
1: opname : stu 2: opname2 : techer
同步消息 异步消息
七、顺序图与通信图的相互转换
-2-
第06章 面向对象的设计原则
Object-Oriented Design Principles
-3-
通信图描述的是和对象结构相关的信
息。 通信图的用途是表示一个类操作的实 现。 通信图对交互中有意义的对象和对象 之间的链建模。 在UML中,通信图用几何排列来表示 交互作用中的对象和链,附在链的箭 头代表消息,消息的发生顺序用消息 箭头处的编号来说明。
1: name A B
1: name A B
简单消息
1: name A B
同步消息
C
异步消息
反身消息
13
14
二、迭代的表示方法 1、单个对象发送消息到一组其他对象时 接收消息对象组用带有重叠的矩形框,这实际上表示对象的 集合,将*放置在消息的前面
Rose表示方法
这种迭代的用途:多态和广播消息
(1)多态
四、添加链接
用工具栏中的链接按纽进行连接
五、添加消息
方法1: a.用工具栏上的消息按纽点击链接线
: stu
: techer
b.双击消息,在弹出的窗口中设置消息的名称
方法2:
a.双击链接线,弹出如下窗口
: stu : techer
b.切换到messages页面 在空白处右击,选择
1: opname : stu 2: opname2 : techer
Object-Oriented Analysis & Design
2013-2014学年第一学期软件111-112班 计控学院软件工程系 吴迪
学习路线图
1 OO 2 UML 5 8 6 OOP DP 7 9
3
4
: :
… Case-Study …
学习路线图
10 …… …… …… ……
在消息前在星号(*) 在消息后加<<broadcast>>
2、消息从一个对象到另一个对象的多次发送
实例 存款
19
20
练习
21
22
23
课堂练习
PrintServer
件
制 控 5.
求打 印文
打 印
3.1.队列是否为空 3.2.添加到队列 4.返回打印文件
1.打印文件
Computer
2.请
Printer
Queue
通信图的Rose建模
一、新建通信图
方法1:
方法2:
二、重命名通信图并双击打开
对象 链接 反身链接 消息 反向消息
三、添加对象 方法1: a.将事先创建的类从浏览器拖到通信图中
b.双击对象,在弹出的窗口中设置对象的名称
方法2: a.通过工具栏的对象按纽在通信图中添加一个对象
b.双击对象,在弹出的窗口中设置对象名和类
通信图
5
顺序图 交互图
通信图
顺序图与通信图均显示了对象间的交互,但它们强调了 不同的方面。 顺序图强调交互的时间次序,但没有显式地指明对象间 的关系。 通信图清晰地显示了对象间的关系,但交互的时间次序 不明显,必须从消息的序号中获得。
顺序图按照时间顺序布图,而通信图按照空间结构布图 通信图与顺序图在语义上是等价的,二者可以相互转换。
通信图组成
一、对象
ObjectA ObjectB:ClassB :ClassC 未指定对象所属类名 完全限定对ቤተ መጻሕፍቲ ባይዱ名 未指定对象名
10
二、链接
1、链接的概念 链接用来在通信图中关联对象,链接的目的是让消息在不同 系统对象之间传递。 2、链接的符号表示 链接以连接两个对象的单一线条表示
三、消息
1、消息的概念 消息是通信图中对象与对象之间通信的方式 2、消息的类型与符号表示
多态:同一个操作(操作名相同,参数相同)被不同的对 象接收时,可产生不同的动作或执行效果。
消息的发送者不必知道接收消息的对象所属的类,只提供 一个操作的请求,接收者知道如何处理这一请求。
(2)广播消息 所谓广播消息是把多个对象作为它的目标对象的消息。广播 消息一般是异步消息,广播的发送者不必等待返回消息。
六、设置消息的类型
双击消息,在弹出的对话框选择”detail”选项卡
1: opname : stu 2: opname2 : techer
同步消息 异步消息
七、顺序图与通信图的相互转换
-2-
第06章 面向对象的设计原则
Object-Oriented Design Principles
-3-
通信图描述的是和对象结构相关的信
息。 通信图的用途是表示一个类操作的实 现。 通信图对交互中有意义的对象和对象 之间的链建模。 在UML中,通信图用几何排列来表示 交互作用中的对象和链,附在链的箭 头代表消息,消息的发生顺序用消息 箭头处的编号来说明。
1: name A B
1: name A B
简单消息
1: name A B
同步消息
C
异步消息
反身消息
13
14
二、迭代的表示方法 1、单个对象发送消息到一组其他对象时 接收消息对象组用带有重叠的矩形框,这实际上表示对象的 集合,将*放置在消息的前面
Rose表示方法
这种迭代的用途:多态和广播消息
(1)多态
四、添加链接
用工具栏中的链接按纽进行连接
五、添加消息
方法1: a.用工具栏上的消息按纽点击链接线
: stu
: techer
b.双击消息,在弹出的窗口中设置消息的名称
方法2:
a.双击链接线,弹出如下窗口
: stu : techer
b.切换到messages页面 在空白处右击,选择
1: opname : stu 2: opname2 : techer