区分 UML 类图中的几种关系
UML 类图中的 ”关联关系(association) “、”聚合关系(aggregation) “、”合成关系
(compostion)“ 和”依赖关系 (dependency)“ 不是很容易区分清楚,《UML distilled》
对这几个关系也没有解释的特别清楚。近日翻阅《Java 与模式》,发现其中对这些关系有较为清晰的描述,特摘录如下:
关联关系 (association)
:
(1)关联关系是类与类之间的联结,它使一个类知道另一个类的属性和方法。
(2)关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
(3)在 Java 或 c++ 中,关联关系是通过使用成员变量来实现的。 class
徒弟
{ };
class 唐僧
{
protected:
list<徒弟> tdlist;
};
聚合关系 (aggregation)
:
1、聚合关系是关联关系的一种,是强的关联关系。
2、聚合是整体和部分之间的关系,例如汽车由引擎、轮胎以及其它零件组成。
3、聚合关系也是通过成员变量来实现的。但是,关联关系所涉及的两个类处在同一个层次上,而聚合关系中,两个类处于不同的层次上,一个代表整体,一个代表部分。
4、关联与聚合仅仅从 Java 或 C++ 语法上是无法分辨的,必须考察所涉及的类之间的逻辑关系。
class 引擎
{
};
class 轮胎
{
};
class 汽车
{
protected:
引擎 engine;
轮胎 tyre[4];
};
合成关系 (composition):
1、合成关系是关联关系的一种,是比聚合关系还要强的关系。
2、它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
1 class 肢
{
};
class 人
{
protected:
肢 limb[4];
};
依赖关系 (dependency):
1、依赖关系也是类与类之间的联结
2、依赖总是单向的。
3、依赖关系在 Java 或 C++ 语言中体现为局部变量、方法的参数或者对静态方法的调用。
显示代码打印
public class Person
{
public void buy(Car car)
{ ... }
}
总结:
1、不同的关系采用不同的 UML 图例
2、对于聚合关系、合成关系,由于都是关联关系的一种,因此在不确定的情况下,可以以关联关系来描述它们。 |
|
相关推荐
UML图中会有组件和叶子节点的区分。 9. 装饰模式:动态地给一个对象添加一些额外的职责。UML图会显示装饰者和被装饰者之间的继承关系。 10. 外观模式:提供了一个统一的接口,用来访问子系统的一组接口。UML图会...
在IT行业中,有效的沟通和可视化技术是至关重要的,而UML(统一建模语言)图就是一种强大的工具,它可以帮助我们清晰地表达系统设计和流程。draw.io是一款免费且易用的在线绘图工具,特别适合创建各种UML图,如类图...
但是后几种关系所表现的强弱程度依次为:组合>聚合>关联>依赖。 在 UML 中,还有泛化关系、关联关系、聚合关系、组合关系等多种关系,这些关系都是类与类、或者类与接口之间的关系,可以用来描述类与类、或者类与...
《UML2软件建模入门与提高》是一个涵盖了软件开发中的统一建模语言(Unified Modeling Language,简称UML)的全面教程。UML是软件工程领域广泛应用的一种可视化建模工具,用于描述、构造和文档化软件系统的设计。本...
以下是UML中几种关键图的详细介绍: 1. **用例图**: - 用例图展示了系统与外部用户或系统(称为参与者)之间的交互。它定义了系统的主要功能,即用例,以及参与者如何与这些用例进行交互。 - 建立用例图的步骤...
根据提供的文件信息,我们可以归纳出一系列关于UML(Unified Modeling Language,统一建模语言)的知识点,主要包括用例图、类图、活动图、顺序图与合作图以及构件图等几种基本类型的图示。 ### 一、用例图 #### 1...
UML流程图主要包括以下几种类型: 1. **活动图(Activity Diagram)**:这是描述系统或组件内动态行为的图表,类似流程图,展示了任务、决策和并发流程。 2. **序列图(Sequence Diagram)**:它描绘了对象之间的...
3. **关系**:关联(Association)、依赖(Dependency)、泛化(Generalization)和实现(Realization)是UML中最常见的关系类型,它们描述了元素之间的相互作用。 4. **注释**:在UML模型中,注释(Annotation)...
- **熟悉UML的基本概念和术语**:确保对UML的各种图有深入的理解,能够区分它们的用途和特点。 - **练习绘制UML图**:通过实际操作加深记忆,提高绘图速度和准确性。 - **理解UML的应用场景**:了解UML在软件开发...
7. **结构与行为**:UML区分了描述静态结构的图(如类图、组件图)和描述动态行为的图(如状态图、活动图)。 **UML的应用** UML在软件开发过程中扮演着重要角色,主要体现在以下几个方面: 1. **需求分析**:用...
类图是UML中最常用的图,它描绘了类、接口和它们之间的关系。类图元素包括: - **类(Class)**:代表具有相同属性、操作和关系的对象集合。 - **属性(Attribute)**:描述类的特征。 - **操作(Operation)**...
- **映射泛化关系**:泛化关系指的是继承关系,在数据库设计中可以通过以下几种方式来映射继承关系: - **单表策略**:将超类和所有子类的信息存储在同一张表中,使用类型字段区分不同的子类。 - **每子类一张表**...
而UML通过其多种图表,如用例图用于描绘用户交互,类图用于表示对象结构,状态图和活动图用于展示动态行为,使得团队能更好地理解和区分需求中的变化与稳定性,从而降低因变更带来的成本。 掌握UML语言,可以增强...
以下是UML中几种主要图形的建立步骤: 1. **用例图的建立**: - **识别参与者和系统边界**:首先确定系统与外部活动者的关系,界定系统的范围。 - **确定用例**:基于参与者的需求,将系统行为定义为用例。 - **...
下面详细介绍UML2.0中的几种关键图: 1. **类图(Class Diagram)**:展示了一组类、接口、协作及其关系。它是面向对象系统建模中最常见的图之一,用于表示系统的静态设计视图。 2. **对象图(Object Diagram)**...
以下是几种常见的UML图类型: - **类图(Class Diagram)**:描述类及其之间的关系。 - **对象图(Object Diagram)**:显示特定时刻对象之间的关系。 - **构件图(Component Diagram)**:描述系统中的软件组件及其...
**UML类图** 在设计模式中,UML(统一建模语言)图是用于表示类、接口和它们之间的关系的图形表示。在组合模式中,通常会包括以下几个主要角色: 1. **Component(组件)**:这是抽象基类,定义了叶子节点和枝节点...