1.
两种关联关系的特例:
1)
聚合
Aggregation
——
Aggregation: b can live without its context (object of A).
============================================
==C++==
class B{
B* b;
}
==java==
class B{
B b;
public A(B b){
this.b = b;
}
}
聚合是整体与部分、拥有的关系,即
has-a
的关系,此时整体和部分之间可以分离,他们可以具有各自的生命周期
,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与
CPU
、公司和员工的关系等;表现在代码层面上,和关联关系一致,只能从语义级别区分。
2)
组合
Composition
——
Composition: b's lifetime is up to its context (object of A).
==C++==
class A{
B b;
}
==java==
class A{
B b;
public A(){
b = new B();
}
}
组合也是关联关系的一种特例,他体现一种
contains-a
关系,这种关系比聚合关系更强,也称为强聚合;它同样体现为整体和部分见的关系,但此时整体和部分是不可分割的,
整体的生命周期结束时部分的生命周期也结束
。比如,你和你的大脑。在代码层面上,和关联关系一样,只能从语义级别区分。
2.
几个例子:
演出售票系统
:
在用例驱动的开发过程中,通过分析各个用例及参与者得到类图。分析用例图的过程中需要根据面向对象的原则设计类和关系,根据用例的细节设计类的属性和操作
Composite模式
:
*
从演出售票系统理解
multiplication
的使用——
SubscriptionSeries
和
Ticket
之间的多重性是“
0...1
”和“
3...6
”:
A.
特定的
1
个
SubscriptionSeries
实例,在数据表中找得到它对应的
3...6
张
Ticket
实例;
B.
特定的
3...6
张
Ticket
实例,在数据表中找得到他们对应的
1
个
SubscriptionSeries
;或者
0
个
SubscriptionSeries
,因为可能这些
Ticket
来自
IndividualReservation
- 大小: 15.1 KB
- 大小: 15 KB
- 大小: 23.4 KB
- 大小: 37.9 KB
- 大小: 9.1 KB
- 大小: 27.6 KB
分享到:
相关推荐
UML class diagram
泛化关系,也称为继承,表示“is-a”的逻辑关系,如`public class DerivedClass : BaseClass`,表明DerivedClass是BaseClass的一种特殊情况。在UML中,继承用带空箭头的直线表示。 依赖关系是一种临时性的关联,...
EXT JS 3.0 Core Class Diagram 是一个关于EXT JS库核心类结构的图表,它展示了EXT JS 3.0版本中的主要组件和它们之间的关系。EXT JS是一个强大的JavaScript库,主要用于构建富客户端Web应用程序,其核心功能包括...
程序设计大作业的类图描述,用于展示各个类之间的关系。方便阅读相关的代码。通过类图可以完成一个程序的总体架构,并对各个架构进行分析和编写。类图还可以展示类的成员,通过点击类的成员可以直接定位到相应代码...
AS3classDiagram.airAS3classDiagram.airAS3classDiagram.air
Class Diagram0.asta
### Qt 类图关系详解 #### 引言 在软件开发领域,Qt 是一个跨平台的应用程序框架,由 Trolltech(现为 The Qt Company)开发,主要用于构建图形用户界面(GUI)。Qt 支持多种操作系统,如 Windows、Linux、macOS ...
as3 类关系图 jpg格式,as3 类关系图 jpg格式,as3 类关系图 jpg格式,as3 类关系图 jpg格式,as3 类关系图 jpg格式
其中,类图(Class Diagram)是UML中最常用的一种图表类型,用于展示系统中类的静态结构及其相互关系。本文将详细介绍类图的基本概念、组成元素以及如何使用类图来描述系统。 #### 二、类图目的与作用 类图的主要...
本文主要基于`eMule 0.27c Class Diagram.pdf`文档,对eMule 0.27c版本的源代码体系结构和类图进行详细的解析,并结合部分源代码片段来探讨eMule的核心组件和工作原理。 #### 二、eMule源代码架构简介 ##### 1. ...
Qt5类关系图,基于Qt5.1版本,对于系统学习Qt5很有帮助。
Creating_Class_Diagram.swf
本文将详细探讨类图的概念、组成要素以及如何使用类图进行系统建模。 类图是UML中最为基础的图形之一,它以图形方式展示了类的结构,包括类的属性、操作、继承关系、关联关系等。类图的主要构成元素有以下几个部分...
方法代表对象的操作行为,类具有继承关系,可以继承于父类,也可以与其他的Class进行交互。类图展示了系统的逻辑结构,类和接口的关系。二、类的构成类主要有属性和方法构成。比如商品属性有:名称、价格、高度、...
E03.1 class, deployment diagram
在编程领域,Diagram是一种强大的工具,它用于可视化地表示数据、流程或系统结构。C#是一种广泛使用的面向对象的编程语言,尤其在Windows应用程序开发中占据主导地位。本项目是用C#实现的一个Diagram编辑器,它允许...
1. **类图(Class Diagram)**:类图是UML中最常见的图表类型,用于表示类、接口以及它们之间的关系。DiagramDesigner允许用户定义类的属性、方法,并通过连线展示继承、实现、关联等关系。 2. **对象图(Object ...
Voodoo UML Class Diagram Editor是一款基于C++开发的开源UML类图编辑工具,它利用Tcl/Tk作为图形用户界面(GUI)的部分。这款编辑器的目的是提供一个直观且功能丰富的平台,使得软件开发者和设计者能够方便地创建、...
《序列图绘制工具sequence-diagram-js的深度解析与应用》 序列图,作为一种重要的系统建模工具,广泛应用于软件设计和开发中,它清晰地展示了系统内各对象间交互的顺序。sequence-diagram-js是一个基于JavaScript的...