UML中类图的符号解释
在UML的定义中,描写叙述类和对象之间的关系,包含下面几种方式:依赖(Dependency)、关联(Association)、聚合(Aggregation)、组合(Composition)、泛化(Generalization)和实现(Realization)。现分别说明例如以下:
1.依赖(Dependency)
在uml中,“依赖”表示为带箭头的虚线,箭头指向被依赖的元素。是类与类之间的连接,表示为一个类依赖于还有一个类的定义,当中一个类的变化将影响还有一个类。依赖总是单向的,不应该存在双向依赖,这一点要特别注意。更详细的说,依赖能够理解为:一个类(A)对不在事实上例作用域内的还有一个类或对象(B)的不论什么类型的引用。大致包括下面几种情况:
(1)局部变量;
(2)方法的參数;
(3)静态方法的调用;
以下是依赖关系的uml示意图:
2.关联(Association)
在uml中,关联表示为带箭头的实线。关联能够是单向的,也能够是双向的。假设是双向关联,则能够表示为双向箭头,或者没有箭头。一般来说,系统设计应表现为单向关联,这样利于维护。一个关联能够附加“多重性”的修饰符,表示两个类之间的数量关系。关联能够理解为:一个类(A)持有还有一个类或对象(B)。详细表现为:
(1)成员变量
以下是关联关系的uml演示样例图:
上面的关联表示,一个Employee持有(has)0个或多个TimeCard。
3.聚合(Aggregation)
在uml中,聚合关系表示为空心的菱形箭头线。聚合关系是关联关系的一种,表示一种“强”关联关系。对照与关联关系,两个类是处于同一个层次的。而聚合关系,两个类处于不同的层次,强调了一个总体/局部的关系。比如一辆汽车有一个引擎,4个轮胎。
在聚合关系中,体现了一种“弱拥有”的概念。也就是说,对象A拥有对象B,但B并非A的组成部分。更详细的表现为,假设A由B聚合而成,则A包括B的全局对象,但B对象能够不在A对象创建时创建。回到前面的样例,汽车对象由轮胎对象聚合而成,可是轮胎对象的生命期并不受汽车对象的左右。当汽车对象销毁时,轮胎对象也能够单独存在!
以下是聚合关系的uml示意图:
从代码上看,聚合和关联没有不论什么差别。这里只体现一种概念上的含义。在创建ClassA的时候,不一定须要同一时候创建ClassB的实例。
4.组合(Composition)
在uml中,组合关系表示为实心菱形箭头线。组合也叫合成。合成关系强调了比聚合关系更加强的总体/部分的关联,比如人和四肢。和聚合关系所不同的是,在组合关系中,尽管局部不一定随着总体的销毁而销毁,但总体要么负责保持局部的存活状态,要么负责将其销毁。也就是说,组合关系中,局部的存活期一定是小于,最多是等于总体的存活期的。
以下是组合关系的uml演示样例图:
5.泛化(Generalization)与实现(Realization)
泛化也就是通常所谓的继承关系,在uml中表示为一个带空心三角的实线。表示为is-a的关系,是对象间耦合度最大的一种关系,子类继承父类的全部细节,并能够在此基础上加入自己的特性。
以下是泛化关系的uml图:
所谓实现就是对接口的定义实现,非常easy。表现为带箭头的虚线。以下的实现的uml图:
UML中类图的符号解释的更多相关文章
- 北风设计模式课程---UML类图各符号含义
北风设计模式课程---UML类图各符号含义 一.总结 一句话总结: 用脑子,挺好记的:实线关系肯定比虚线重,箭头.三角形.菱形的关系肯定依次加重,三角形是继承和实现, 1.UML类图中 线+箭头 表示 ...
- UML中类图的一些基本知识
一.类 类(class)封装了数据和行为,是面向对象的重要组成部分,他是具有相同操作.属性.关系的对象集合的总称. 在软件运行时,类被实例化成对象(object),对象对应某个具体的事物,是类的实例( ...
- UML中类图(Class Diagram)的关系整理
什么是UML类图? 类图显示了一组类.接口.协作以及他们之间的关系.在UML中问题域最终要被逐步转化,通过类来建模,通过编程语言构建这些类从而实现系统.类加上他们之间的关系就构成了类图,类图中还可以包 ...
- UML中类图的四种关系及其代码实现
在uml图中 最复杂的也就是泛化,实现.依赖,关联.这四种关系了,假设弄清了这几种关系那么在理解UML图的时候就会变得轻车熟路了! 假设你对着几种关系一点都不熟悉的话能够看一下uml中的四种关系.这篇 ...
- 第一章 简单工厂模式 及 UML中类图的表示方法
写一个简单计算器程序时,可以写一个操作类,然后加.减.乘.除操作分别继承它,复写操作计算结果的方法.写一个简单工厂类,通过输入的操作符,使用操作类来new一个相应的操作类的子类对象.这样,工厂就实例化 ...
- UML类图详解
下面是类图的实例: (注:飞翔接口那里应为空心三角形) UML中类图实例 接口:空心圆+直线(唐老鸭类实现了‘讲人话’):依赖:虚线+箭头(动物和空气的关系):关联:实线+箭头(企鹅需要知道气候才迁移 ...
- 什么是UML类图
百度了下,看评论不错我就收藏了,学习,真心不懂!!! 首先是复习一下UML中九种图的理解:http://xhf123456789plain.blog.163.com/blog/static/17288 ...
- UML 类图常用表示方法.
UML中类图实例 接口:空心圆+直线(唐老鸭类实现了‘讲人话’): 依赖:虚线+箭头(动物和空气的关系): 关联:实线+箭头(企鹅需要知道气候才迁移): 聚合:空心四边形+实线+箭头(雁群和大雁的关系 ...
- 【转载】UML类图中箭头和线条的含义和用法
文章转载自 http://blog.csdn.net/hewei0241/article/details/7674450 https://blog.csdn.net/iamherego/article ...
随机推荐
- POJ 2031 prim
Building a Space Station Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 4400 Accepted: 2 ...
- SpringMVC 返回字符串
今天看到一段代码,关于SpringMVC的Controller中返回字符串的代码,这段代码被我称为2b代码(英文名:2b Code). @RequestMapping(value="twoB ...
- 基于visual Studio2013解决面试题之1310随机数
题目
- 使用Eclipse EE开发web项目
最近使用EclipseEE开发web项目,遇到了以下几个问题: 1. 通过tomcat启动web应用的时候,总是提示找不到包或者class. 经过排查,发现所有的jar包并没有放到WEB-INF/li ...
- TCanvas.CopyRect方法中参数CopyMode的意义
首先看可能取值: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 cmBlackness = BLACKNESS; cmDstInvert = DSTINVERT; cmMer ...
- timesetevent与timekillevent的用法
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs ...
- 图片组件——axure线框图部件库介绍
我们在后面的组件使用中,都统一使用"从部件区域拖拽图片组件到页面区域中" 1. 图片载入 1.1 将图片组件拖拽到页面区域 1.2 双击图片组件 1.3 选择合适图片,点击打开 1 ...
- 基于visual Studio2013解决C语言竞赛题之1069链表查找删除
题目 解决代码及点评 /* 功能:建立一个链表,每个结点包括:学号.姓名.性别.年龄.输入一个年龄,如果链表中的结点所包含的年龄等于此年龄, 将此结点删除,输出最后的链表. 时 ...
- 【每日一摩斯】-Troubleshooting: High CPU Utilization (164768.1) - 系列4
Jobs (CJQ0, Jn, SNPn) Job进程运行用户定义的以及系统定义的类似于batch的任务.检查Job进程占用大量CPU资源的方法,就像检查用户进程一样. 可以根据以下视图检查Job进程 ...
- 如何在Linux上检查SSH的版本(转)
SSH协议规范存在一些小版本的差异,但是有两个主要的大版本:SSH1 (版本号 1.XX) 和 SSH2 (版本号 2.00). 事实上,SSH1和SSH2是两个完全不同互不兼容的协议.SSH2明显地 ...