UML类图——类之间的关系
关联关系(实线箭头)
是一种结构化关系,表示一类对象与另一类对象之间有联系。Java,c++,c#等编程语言在实现关联关系时,通常将一个类的对象作为另一个类的属性
- 双向关联
- 单向关联
- 自关联
- 多重性关联
聚合关系(带空心菱形的实线箭头)
表示一个整体与部分之间的关系,在聚合关系中成员类是整体类的一部分,即成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在
public class Car{
private Engine engine;
public Car (Engine engine){
this.engine = engine;
}
public void setEngine(Engine engine){
this.engine = engine;
}
}
public class Engine{
......
}
Engine是Car的一部分,但是Engine可以脱离Car单独存在,在Car中不直接实例化Engine,而是通过构造方法或者setter方法将在类外部实例化好的Engine对象以参数的形式传入到Car中,这种传入方法叫注入(Injection),Car和Engine实例化时刻不同,因此他们之间不存在生命周期的制约关系。
组合关系(带实心菱形的实线箭头)
表示整体与部分之间的关系,但是整体与部分是共同生死的关系.
public class Head{
private Mouth mouth;
public Head(){
mouth = new Mouth();
}
}
public class Mouth{
.......
}
head中直接创建了mouth对象,同生共死,拥有相同的生命周期
依赖关系(虚线箭头)
是一种使用关系,在需要表示一个事物使用另一种事物时使用依赖关系。依赖关系体现在某个类的方法使用另一个类的对象作为参数,又依赖的一方指向被依赖的一方。
public class Driver{
public void drive(Car car){
car.move();
}
}
public class Car{
public void move(){
......
}
}
泛化关系(带空心三角的实线箭头)继承关系
接口与实现关系(带空心三角的虚线箭头)
UML类图——类之间的关系的更多相关文章
- UML类图的6大关系
<小酌重构系列>已经完成了大约1/3了,在这些文章中,我使用了一些简单的类图来描述重构策略.在之后的文章中,我可能会借助稍微复杂一些的UML类图来介绍.但是在此之前,我觉得有必要先介绍一下 ...
- [UML]UML系列——类图class的泛化关系
系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图C ...
- [UML]UML系列——类图class的实现关系Realization
系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class ...
- UML类图6种主要关系区别和联系
UML类图关系图示,因为长得都很类似,所以大家总会混淆,本文主要目的就是分析一下6种主要的关系,找到联系与区别,便于记忆. 6种主要的关系如图1所示.继承与实现.组合与聚合.关联与依赖可分别划分为一组 ...
- UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现
UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中, ...
- 类图class的依赖关系
类图class的依赖关系 相关文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) ...
- UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现(转)
UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统 ...
- PHP类和对象之间的关系
类是对象的描述: 类和对象之间的关系类似于建房子的图纸和房子: 创建类--new对象--用对象: 一.对象的两个特性: --对象的行为(功能):可以对对象施加操作,例如,电视机的开.关.转换频道: - ...
- JAVA面向对象-----接口与类、接口之间的关系
接口与类.接口之间的关系 大家之前都知道类与类之间的关系继承,那么接口与类之间又是怎样子的关系呢? 接口与类之间是实现关系.非抽象类实现接口时,必须把接口里面的所有方法实现.类实现接口用关键字impl ...
- Python面向对象02/类的空间问题、类与对象之间的关系、类与类之间的关系
Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 目录 Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 1. 类的空间问题 2. 类与对象之间 ...
随机推荐
- mysql-连接路径url参数(随时补充及改错)
1.基本驱动连接url jdbc:mysql://127.0.0.1:3306/demo 2.参数 参数 缺省值 说明 粘贴 useSSL 是否使用ssl加密连接mysql,一般指定false就行,除 ...
- DRF的视图与路由集Routers
一 视图 Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验.保存.转换数据) 控制数据库模型的操作 一 普通视图APIView 一 两个视图基类 1 APIV ...
- 解决Selenium元素拖拽不生效Bug
转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/e8aa6c6f.html 你好,我是测试蔡坨坨. 前几天在使用Selenium进行元素拖拽操作时,发现Selenium自带的 ...
- 一个由public关键字引发的bug
先来看一段代码: @Service @Slf4j public class AopTestService { public String name = "真的吗"; @Retrya ...
- 自己动手从零写桌面操作系统GrapeOS系列教程——23.从硬盘读取文件
学习操作系统原理最好的方法是自己写一个简单的操作系统. 本讲代码文件为boot.asm,要读取的文件为data.txt. 一.在FAT16系统中读取文件的流程 在GrapeOS中用到的文件少且小,所有 ...
- 【论文翻译】LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS
LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS 论文地址:https://arxiv.org/pdf/2106.09685.pdf 代码地址:ht ...
- sqlite4操作
目录 SQLite数据库(一):基本操作... 1 目录... 1 一.SQLite介绍... 2 1. 什么是SQLite. 2 2. 什么是数据库... 2 3. 数据库是如何存 ...
- python从shp文件中读取经纬度数据
python从shp文件中读取经纬度数据 没有接触过GIS的人来说shp文件很陌生而且很难打开查看,好在python可以从中提取出自己想要的数据 pyshp库的安装 python的pyshp库可以实现 ...
- Go语言实现简单分布式系统
使用Go语言实现比较简单的分布式系统,这个系统中采用多个分布式模型,即混合模型,并且基于HTTP进行通信,传输JSON数据 github链接: https://github.com/T4t4KAU/d ...
- Linux 查看内存使用情况的几种方法
*以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/27UaVm5_FMhCnxB88pc0QA 在运行 Linux 系 ...