盘点UML中的四种关系
生活中,我们既是独立的个体,又通过联系形成各种关系,比方说:朋友。恋人。父子,同学……于是乎,出现了神乎其神的六人定律。
那么在UML中又存在什么样的关系呢?以下我们来梳理一下。
关联(Association)
描写叙述了两个或多个类之间的结构性关系。
图示:直线或直线+箭头
双向关联:
指两方都知道对方的存在。都能够调用对方的公共属性和方法。
箭头及指向:双向的关联能够有两个箭头或者没有箭头
例1:公司和人
将来在Person类中会有属性名为employer,类型为Company ;在Company类中会有一个属性为Employee。类型为Person
例2:教师和学生
单向关联:
指一方能够调用对方的属性和方法。
箭头及指向:单向关联是带普通箭头的实心线,指向被拥有者。
例3:学生和某课程
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFvdmlwMTIz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生
自身关联(反身关联):
自己引用自己,带着一个自己的引用。就是在自己的内部有着一个自身的引用。
聚合关系:
是总体与部分的关系,且部分能够离开总体而单独存在。
箭头及指向:带空心菱形的实心线,菱形指向总体
例4:车和轮胎是总体和部分的关系。轮胎离开车仍然能够存在
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFvdmlwMTIz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
组合关系:
是总体与部分的关系。但部分不能离开总体而单独存在。
箭头及指向:带实心菱形的实线,菱形指向总体
例5:公司和部门是总体和部分的关系。没有公司就不存在部门。
依赖(Dependency)
依赖关系是一种使用关系。特定事物的改变有可能会影响到使用该事物的事物,反之不成立。通常情况下。依赖关系体如今某个类的方法使用还有一个类作为參数
图示:虚线+箭头
例6:动物与氧气和水的关系
泛化(Generalization)
泛化关系是一种继承关系,是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。用这样的方法。子元素共享了父元素的结构和行为。
图示:实线+空心三角
例7:动物与猎豹和狼的关系
实现(Realization):
实现是类元之间的语义关系。在该关系中一个类元描写叙述了还有一个类元保证实现的契约。
一个类实现了一个接口。
图示:虚线+空心三角(箭头指向接口)
例8:遥控器类实现了电视剧的换台接口
各种关系的强弱顺序:
泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
用一个通俗易懂的UML图来回想一下这几种关系
如今对UML的学习仅仅是刚刚開始。对知识的理解还不够充分,假设有错误的地方,还望大牛可以指点一二,万分感谢!
盘点UML中的四种关系的更多相关文章
- UML中的四种关系总结
UML中的关系主要包含四种:关联关系.依赖关系.泛化关系.实现关系.当中关联关系还包含聚合关系和组合关系. 1. 关联关系(Association) 关联关系式一种结构化的关系,是指一种对象和还有一种 ...
- 【转】UML中的几种关系详细解析
UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中, ...
- uml中的几种关系
这是一堂关于UML基础知识的补习课:现在我们做项目时间都太紧了,基本上都没有做过真正的class级别的详细设计,更别提使用UML来实现规范建模了:本篇主要就以前自己一直感觉很迷糊的几种class之间的 ...
- UML中的几种关系(UML Relationships)
依赖(Dependency) 依赖可以理解为一个类A使用到了另一个类B,而这种使用关系是具有偶然性的.临时性的.非常弱的,但是B类的变化会影响到A:比如某人要过河,需要借用一条船,此时人与船之间的关系 ...
- 【菜鸟也疯狂UML系列】——浅析UML四种关系
在UML中.关系是很重要的.它抽象出对象之间的联系,让对象构成某个联系起来的结构.以下将简要分析一下UML中的四种关系:关联.依赖,泛化,实现. 一.举例罗列 1.关联(Association) 关联 ...
- UML中类图的四种关系及其代码实现
在uml图中 最复杂的也就是泛化,实现.依赖,关联.这四种关系了,假设弄清了这几种关系那么在理解UML图的时候就会变得轻车熟路了! 假设你对着几种关系一点都不熟悉的话能够看一下uml中的四种关系.这篇 ...
- UML---UML中的几种关系(依赖,关联,泛化,实现)
关于设计模式的总结没有落实到代码上,而且设计模式自己确实动手实现的非常少.所以在这一周里,除了看网站开发的视频,着手开始对设计模式进行实现以下.设计模式非常经典,每次看都有不同的收获,写一下自己的收获 ...
- UML 之 四种关系
学习过UML的人都知道,UML之中有九种图和四种关系,今天,我们先来介绍一下这四种关系: 对于我们这些初学者来说,UML之中无非是 关联.依赖.泛化和实现,但是其中,关联和依赖又如何区分?泛化又如何 ...
- UML类图中类与类的四种关系图解
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
随机推荐
- TWaver可视化编辑器的前世今生(三)Doodle编辑器
插播一则广告(长期有效)TWaver需要在武汉招JavaScript工程师若干要求:对前端技术(JavasScript.HTML.CSS),对可视化技术(Canvas.WebGL)有浓厚的兴趣基础不好 ...
- Openjudge-4115-佐助和鸣人
这一题是一道广搜的题目,首先我们通过读入字符串读入每一行,然后顺带找到鸣人的位置. 然后我们初始化之后,就进行广搜,还是广搜的格式,但是要压入队列的条件我们可以稍微变一变,我们可以直接判断下一个要走的 ...
- nginx如何防止高负载造成服务器崩溃
nginx-http-sysguard模块 一.作用 防止因nginx并发访问量过高或者遭受攻击造成服务器宕机,可根据负载设置界面跳转. 二.安装配置 1.下载模块软件包 wget https:/ ...
- rpm 包管理器
rpm 包管理器 二进制应用程序的组成部分: 二进制文件.库文件.配置文件.帮助文件 程序包管理器:不同厂商的程序,包管理器也不同. debian:deb文件, dpkg包管理器 redhat: rp ...
- Postman插件如何安装
我们chrome插件网热门推荐的软件之一就是postman.但是postman的适应平台分为:postman chrome应用程序,postman应用程序,postman插件.谷歌应用商店从2018年 ...
- ThinkPHP foreach标签
$optionvalue = array( 'MSGTYPE_TEXT'=>'文本消息', 'MSGTYPE_EVENT_SCAN'=>'扫描事件', 'MSGTYPE_EVENT_sub ...
- Django之学员管理二
Django之学员管理二 学生表的一对多的增删改查 views.py def students(request): #select students.sid,students.name,classes ...
- Python爬虫-爬取京东商品信息-按给定关键词
目的:按给定关键词爬取京东商品信息,并保存至mongodb. 字段:title.url.store.store_url.item_id.price.comments_count.comments 工具 ...
- 关于java.io.FileNotFoundException: /static/count.txt (No such file or directory) 问题的解决
这个是BUG网上有三种合理的解释: 1)这个文件在你的程序中可能涉及了读写操作,但是普通用户没有这个权限,所以加上权限就好 chmod count.txt 2)在Linux文件上下层目录是以斜杠 ' ...
- InnoDB透明页压缩与稀疏文件
此文已由作者王慎为授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. MySQL 5.7中包括了很多让人耳目一新的新特性,其中就包括了InnoDB Transparent Pag ...