UML类图介绍(转载)
UML类图详细介绍
类图中的三种对象
类/抽象类
类的表示一般一般如下图所示
类名:图正中间的黑体字表示类的名称,如果是名字的字体是斜体字,则表明该类是抽象类
- 属性:类名下面的区域表示类的属性
- 操作:属性下面的区域表示类的操作(或者说方法)。
- 可见性:属性和操作前面的+、-、#符号代表了这些对象的可见性分别是public、private、protected
接口
接口的表示一般如下图所示

接口的图和类图类似,只不过加入了interface标识。接口中的成员可见性都是public
类图中的六种关系
类图中,类与类之间一般会有六种关系,他们分别是继承(Generalization)、实现(Implements)、组合(Composition)、聚合(Aggressgation)、依赖(Dependency)、关联(Association)
继承(Generalization)
如果对面向对象编程思想了解,则比较容易理解继承的概念。在面向对象的编程思想中,继承是指子类继承了父类的所有功能,并且能够在父类的基础上扩展自己的功能。这里的继承就是表现这种父类和子类的关系。继承关系如下图所示
在这里Teacher和Student类分别是继承了Person类,自动拥有了Person类的公共属性和操作。同时他们分别扩展了自己独有的操作teach和listen。继承关系用一个实线空箭头的连线来表示,箭头指向父类
实现(Implements)
实现的概念和继承有些类似。但是接口中不会有已经写好的操作或者方法,接口中声明的操作都需要再实现类中实现。实现关系如下图所示

在这里SuperMan类一样继承了Person类,因为超人还有一个特性是会飞,所以他还实现了一个Fly的接口。实现关系用一个虚线空心箭头的连线来表示,箭头指向接口。
组合(Composition)
组合表示的是两个对象之间一种强“拥有”的关系,如果B组合成为A,那么B是A的一个整体,B和A的生命周期是一样的。例如是一种部分与整体的关系,部分与整体之间的生命周期是一样的。组合关系用一个一个带箭头的连线表示,尾巴上有实心的菱形,箭头指向被拥有的对象。上面的数字表示两者之间的数量关系。如下图所示
在这里,Hand和Person是组合关系,Hand是Person的部分,Person拥有Hand,而且Hand的生命周期依赖Person的生命周期。也就是说Person没有了,Person的Hand也没有了。在这里表示一个Hand一定归宿一个Person而一个Person可能有0个或者多个Hand。
聚合(Aggressgation)
聚合也表示两个对象之间的一种拥有关系,但是这个关系是一种弱的拥有关系。两者的生命周期是不依赖的。这是和组合的一个重要区别。聚合关系用一个带箭头的连续表示,尾巴带一个空心的菱形,箭头指向被拥有的对象。上面的数字表示两个对象之间的数量关系。如下图所示
这里Classess是由Teacher和Student聚合而成,他们之间是一种拥有关系,但是Classes消亡,并不代表Teacher和Student的消亡,他们的生命周期是不依赖的。这是和组合的重要区别。这幅图里面聚合关系上的数字表示一个Teacher可以在0或者多个Classes中,而一个班级可以由0到多个Teacher。Classes和Student之间聚合关系上的的数量表示的是同样的含义。
依赖(Dependency)
如果一个对象的活动中要依赖另一个对象,则两者之间是依赖关系。例如学生上课依赖课程对象,老师教课也依赖课程对象。依赖关系用一个虚线箭头表示,箭头指向被依赖的对象。在代码中一般体现为操作的参数。如下图所示
关联(Association)
如果一个对象需要知道另一个对象,则对象之间是一种关联的关系。关联可以是单向的,即一个对象知道另一个对象,而另一个对象不知道该对象,也可以是双向的,即两个对象相互知道。关联式用一条实现表示,单向关联带一个箭头,指向被知道的对象,双向关联无箭头。例如学生需要了解考试对象的情况,考试对象需要了解学生的情况,这是一种双向关联关系。如下图所示。
UML类图介绍(转载)的更多相关文章
- 北风设计模式课程---20、UML类图介绍
北风设计模式课程---20.UML类图介绍 一.总结 一句话总结: 不仅要通过视频学,还要看别的博客里面的介绍,搜讲解,搜作用,搜实例 设计模式都是对生活的抽象,比如用户获得装备,我可以先装备工厂先生 ...
- UML 类图介绍
UML 类图介绍 一. UML 简介 UML ( Unified Modeling Language )即统一建模语言,是 OMG ( Object Management Group )发表的图标式软 ...
- UML类图介绍&类的六大关系
UML类图介绍&类的六大关系 官方定义 UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,用于帮助软件开发人员进行思考和记录思路的方式 UML 图形化的语言 基本介绍 UML图: ...
- UML类图介绍以及PlantUML使用方法
类的UML表示方法 UML介绍 类图,是UML(统一建模语言)中用于描述"类"以及"类与类"之间的示意图.它形象的描述出了系统的结构,帮助人们理解系统. 类图是 ...
- UML类图介绍及简单用法
原文链接 一.类的属性的表示方式 在UML类图中,类使用包含类名.属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个Employee类,它包含name,age和em ...
- UML类图介绍
一.概述 UML类图用来定义系统中的类,包括描述类的结构和类之间的关系.类图的主要作用于描述系统的静态结构. 类图的基本模型元素如下:
- UML类图(转载)
概述: 类图是静态图.它代表了一个应用程序的静态视图.类图不仅用于可视化描述和记录系统的不同方面,但也为构建可执行代码的软件应用程序. 类图描述一类的属性和操作,也对系统的约束.被广泛应用于类图的建模 ...
- [转帖]UML类图新手入门级介绍
UML类图新手入门级介绍 2010-11-12 19:45:00 monkey_d_meng 阅读数 27230 收藏 文章标签: umlinterfaceclass编程扩展更多 分类专栏: 软件工 ...
- 转载:23种常用设计模式的UML类图
转载至:https://www.cnblogs.com/zytrue/p/8484806.html 23种常用设计模式的UML类图 本文UML类图参考<Head First 设计模式>(源 ...
随机推荐
- 19. Remove Nth Node From End of List【Medium】【删除单链表倒数第n个结点】
Given a linked list, remove the n-th node from the end of list and return its head. Example: Given l ...
- ECNU 2018 10月月赛 E 盖房子 (bitset + 倍增)
题目链接 ECNU Monthly 2018.10 Problem E 从开场写到结束…… 显然要把三角形分成上下两部分. 把每一部分分成三部分,以上部分为例. 上面和右边,以及左下角的正方形. 也 ...
- vue组件scoped CSS及/deep/深度选择器
参考链接:https://vue-loader.vuejs.org/zh/guide/scoped-css.html#%E5%AD%90%E7%BB%84%E4%BB%B6%E7%9A%84%E6%A ...
- 在mac上无法使用Android Studio的解决方法
随着android Studio 1.0的正式发布,估计使用的人会越来越多,并且官网上现在已经没有融合好的eclipse下载了,官方推荐下载android Studio.之前的beta版我也安装过,好 ...
- 洛谷—— P1908 逆序对
https://www.luogu.org/problem/show?pid=1908 题目描述 猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏, ...
- 通过邮箱验证注册——.net代码
在写一些面向用户的网站类的程序时,必不可少的一个就是注册,通常情况下,我们会选择邮箱验证后注册,或者手机发送验证码注册.上篇文章中已经简单的描述了手机验证注册,这篇主要介绍一下邮箱验证. 邮箱验证的步 ...
- UML对象图、包图
对象图(Object Diagram)显示了一组对象和他们之间的关系.使用对象图阿狸说明数据结构,类图中的类或组件等实例的快照.对象图和类图一样,反应了系统的静态过程,但它是以实际的或原型化为基础来表 ...
- 数据库SQL归纳(二)
数据定义功能 对象 创建 修改 删除 架构 CREATE SCHEMA DROP SCHEMA 表 CREATE TABLE ALTER TABLE DROP TABLE 视图 CREATE VIEW ...
- 20162307 实验四 Android程序设计
实验四 <Android程序设计> 北京电子科技学院(BESTI) 实 验 报 告 课程:程序设计与数据结构 班级:1623 姓名:张韵琪 学号:20162307 指导教师:娄佳鹏老师.王 ...
- 将springboot配置文件中的值注入到静态变量
SpringBoot配置文件分为.properties和.yml两种格式,根据启动环境的不同获取不同环境的的值. spring中不支持直接注入静态变量值,利用spring的set注入方法注入静态变量 ...