UML类图中的关系和表示方法

类图是用来描述程序中的类以及它们之间的关系的,使用类图可以帮助我们简化对系统的理解。在UML类图中比较常见的关系有六种,它们分别是:依赖、关联、聚合、组合、泛化、实现,这六种关系中类之间的紧密程度是依次增强的:依赖 < 关联 < 聚合 < 组合 < 泛化 = 实现。

下面分别介绍一下在UML类图中类和这六种关系的表示方式。

□  类

类是对具有相似结构和行为的一类对象的描述,类的命名要尽量应用领域中的术语,应该明确、无歧义,以利于相互之间的理解和交流。在UML类图中类由一个划分成三层的矩形表示,第一层是类的名称(抽象类一般用斜体表示),第二层是类的属性,第三层是类的操作。类成员的可见性,用+表示public,-表示private,#表示protected。

类的表示如下:

①依赖关系(Dependence)

依赖是一种使用关系,即一个类需要借助另一个类实现某个功能。通常是A类的方法需要使用B类的对象作为参数。例如,在Teacher类中的Write()方法需要将Blackboard类的对象作为传入参数,且Teacher类的Write()方法依赖blackboard对象的Display()方法,所以Teacher类依赖Blackboard类。

依赖关系用【箭头+虚线】表示,箭头指向所依赖的对象。

②关联关系(Association)

关联是一种结构化的关系,用来表示一个类的对象和另一个类的对象之间有联系。通常在A类中将B类的对象作为成员变量,它使一个类知道另一个类的属性和方法。例如在班级类Class中包含一个Student类型的班长monitor,他们之间可以表示为关联关系。

关联关系用【箭头+实线】表示,箭头指向所关联的对象。

③聚合关系(Aggregation)

聚合表示一种整体和局部的关系,在聚合关系中,成员对象是整体对象的一部分,但是成员对象又是可以独立存在的,它们有各自独立的生命周期,整体对象和成员对象之间是has a 的关系。例如,学生在分组讨论问题时,学生(Student)是组(Team)的一部分,但是学生又是可以独立存在。

聚合关系用【空心菱形+实线箭头】表示,箭头指向组成整体的元素。

④组合关系(Composition)

组合也是一种表示整体和局部的关系,但是和聚合关系不同的是,在组合关系中,成员对象和整体对象具有统一的生命周期,一旦整体对象不存在,成员对象也将不在存在,成员对象和整体对象之间具有同生共死的关系,整体对象和成员对象之间是contains a 的关系。

例如,人(Person)和手(Hand)之间的关系。

组合关系用【实心菱形+实线箭头】表示,箭头指向组成整体的元素。

⑤泛化关系(Generalization)

泛化关系也就是继承关系,用于描述父类和子类之间的关系。子类和父类之间是is a 的关系。例如,老师(Teacher)和人(Person)之间的关系。

泛化关系用【空心三角+实线表示】,三角指向父类。

⑥实现关系(implementation)

实现是类和接口之间的关系,接口定义了类所具有的能力,类通过实现接口来拥有某种能力。实现类和接口之间是has a 的关系。

实现关系用【空心三角+虚线表示】,三角指向接口。

UML类图中的关系表示的更多相关文章

  1. UML类图中的关系和表示方法

    类图是用来描述程序中的类以及它们之间的关系的,使用类图可以帮助我们简化对系统的理解.在UML类图中比较常见的关系有六种,它们分别是:依赖.关联.聚合.组合.泛化.实现,这六种关系中类之间的紧密程度是依 ...

  2. 苏宁笔试:UML类图中的关系

    1. 依赖 2. 关联 3. 聚合 4. 组合 5. 泛化 6. 实现

  3. UML类图中最重要的几种类关系及其表示

    阅读UML图最常见到的类与类之间的关系有如下几种: 1.依赖关系 依赖关系是指一个类在计算时,应用了“另一个类”类型的参数,这种关系是偶然.临时.弱的. UML类图中,依赖关系用带单箭头的虚线表示,即 ...

  4. UML类图中的六种关系(物理设计阶段)

    UML类图中经常会用到各种箭头和线条来表示不同类或者接口之间的关系,因此非常好的理解各个图标的含义是很有必要的. 在物理设计阶段可以通过EA工具将类图搭建好,然后直接生成物理类,这样也可以减少物理设计 ...

  5. UML类图中的几种关系总结

           UML类图,描写叙述对象和类之间相互关系的方式包含:依赖(Dependency).关联(Association).聚合(Aggregation).组合(Composition).泛化(G ...

  6. UML类图几种关系的总结

    在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...

  7. 设计模式之UML类图的常见关系

    设计模式之UML类图的常见关系 本文来自转载 烧点饭博客 本篇会讲解在UML类图中,常见几种关系: 泛化(Generalization),依赖(Dependency),关联(Association), ...

  8. 【转】UML类图几种关系的总结

    在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...

  9. UML类图五种关系与代码的对应关系

    转: UML类图中的五种关系的耦合强弱比较:依赖<关联<聚合<组合<继承 一.依赖关系: (一)说明 虚线+箭头 可描述为:Uses a 依赖是类的五种关系中耦合最小的一种关系 ...

随机推荐

  1. Vue之$set使用

    背景 后端参与前端开发的小白,在开发过程中遇到了如下情况:当vue的data里边声明或者已经赋值过的对象或者数组(数组里边的值是对象)时,向对象中添加新的属性,如果更新此属性的值,是不会更新视图的. ...

  2. C++中数据对齐问题。struct、union、enum,类继承。再谈sizeof()

    首先是struct,在C++中,结构体其实和class有很大的相似了.但是有一点不同的是,struct默认是public,而class中是private. 当然,struct继承等用法也是可以的. 共 ...

  3. 4.NFC前台调度系统

    使用目的:当前Activity能直接响应NFC标签,而不需要用户在choose所有能处理的Activity. 使用步骤: 第一步:在onCreate()方法中,创建一个PendingIntent对象 ...

  4. numpy中结构数组

    在c语言中,我们可以使用关键字struct定义结构类型.和c语言一样,numpy也可以创建结构定义,这样可以很方便的读取二进制的C语言结构数组,将其转换为numpy数组对象,假设我们定义的结构数组如下 ...

  5. 设计模式之工厂模式之抽象工厂(php实现)

    github地址: git@github.com:ZQCard/design_pattern.git 抽象工厂模式: 先来认识下什么是产品族: 位于不同产品等级结构中,功能相关联的产品组成的家族.图中 ...

  6. 区别dependencies、devDependencies

    我们在使用npm install 安装模块或插件的时候,有两种命令把他们写入到 package.json 文件里面去,他们是: --save-dev 或 --save 首先需要说明的是Dependen ...

  7. 【Zookeeper】分布式服务框架 Zookeeper -- 管理分布式环境中的数据

    Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理 ...

  8. 联想T470设置U盘启动

    联想T470设置U盘启动 学习了:http://www.udaxia.com/upqd/10092.html # F12 in Enter in USB HDD 如果不行: App Menu > ...

  9. Java List序列化的实现

    概述 java中的序列化与反序列化都要求对象实现Serializable接口(其实就是声明一下),而对于List这种动态改变的集合默认是不实现这个接口的,也就是不能直接序列化.但是数组是可以序列化的, ...

  10. 接口测试工具(Postman)

    给大家介绍一款HTTP接口测试工具 -- Postman ! 优点: 1. 支持参数名与参数值自定义,无论head还是body 2. 支持多种方法调用,包含get与post 3. 支持鉴权加密,包含b ...