UML六大关系总结

2023-09-18 18:24:53

UML六大关系有:继承、关系、聚合、组合、实现、依赖。分为通过图和代码总结这些关系。

1、继承

class Bird:Animal

{

}

说明:一段都是子类继承父类,在子类的后面用一个冒号表示,冒号后面跟着父类的名字。继承只能继承父类共有和保护的属性或方法,私有的变量或方法不能被子类继承。

2、关联

Class Penguin

{

        private Climate climate;//关联

}

说明:关联关系在代码中体现在集合、数组传值等方面。传值的话,需要提前定义全局变量。

3、聚合

class WideGooseAggregate //雁群

{

private Wide Goose[] arrayWideGoose;

}

聚合是关联的一种体现方式。也可以说聚合是基于关联基础上的。

4、组合

class Bird

{

private Wing wing;

Public Bird()

{

wing=new Wing();

}

}

说明:组合也是关联的一种体现方式。是基于关联的基础上的。一个类是另一个

类的一部分,所以最明显的就是在一个类中实例化另一个类,比如在鸟的类中实例化翅膀类。

5、接口

class WildGoose:IFly

{

}

6、依赖

class OperationFactory

{

public static Operation createOperate()//依赖

{

}

}

强弱关系:继承>接口>组合>聚合>关联>依赖

总结

  1. 关联关系:关联关系是指两个类之间存在着某种关联,表示一个类知道另一个类的存在。关联关系可以是双向的,也可以是单向的,可以是一对一的,也可以是一对多的。关联关系可以用实线箭头表示。

  2. 聚合关系:聚合关系是一种强关联关系,表示整体与部分之间的关系。整体对象包含了部分对象,但部分对象可以存在独立于整体对象的情况。聚合关系可以用空心菱形箭头表示。

  3. 组合关系:组合关系是一种更强的聚合关系,表示整体对象包含了部分对象,且部分对象不能存在独立于整体对象的情况。组合关系可以用实心菱形箭头表示。

  4. 继承关系:继承关系是一种类之间的关系,表示一个类(子类)继承了另一个类(父类)的属性和方法。子类可以拥有父类的所有特性,并且可以在此基础上进行扩展或修改。继承关系可以用实线箭头加空心三角形表示。

  5. 实现关系:实现关系是一种接口与类之间的关系,表示一个类实现了一个或多个接口的方法。实现关系可以用虚线箭头加空心三角形表示。

  6. 依赖关系:依赖关系是一种类之间的关系,表示一个类使用了另一个类的方法或属性,但两个类之间没有直接的关联。依赖关系可以是临时的,也可以是持久的。依赖关系可以用虚线箭头表示。

总之,UML中的六大关系包括关联关系、聚合关系、组合关系、继承关系、实现关系和依赖关系。了解和理解这些关系对于软件设计和系统建模都具有重要意义

更多推荐

Faunadb

Faunadb和googlespanner都属于云分布式数据库天然支持分片(无需做分表分库操作,一库搞定,当然价格另说),国内的也有比如TiDBOceanbase等本文使用java语言,其他语言可以跳过;有想直接使用的可以参考(无法访问外网,可以搞个vpn吧!!!,有时会遇到网络问题):GitHub-fauna/fau

WebGIS开发教程:Cesium里面的Entity和primitive有什么区别

EntityEntity是Cesium中最重要的概念之⼀,它通常用于描述具有坐标位置的实际对象,例如⻜机、汽⻋、楼房、⼈物等。每个Entity实例都有不同的属性,例如位置、姿态、缩放、颜⾊、贴图等,并且可以通过编程⽅式创建、修改、删除。Entity的优点是⾮常灵活和易于使用。由于Entity是更⾼层次的概念,因此它可以

Vue中如何进行跨域处理

Vue中的跨域请求处理:解决前端开发中的常见问题跨域请求是前端开发中常见的问题之一。Vue.js是一款流行的前端框架,如何在Vue中处理跨域请求是每个Vue开发者都需要了解的重要课题。本文将深入探讨什么是跨域请求,为什么它会出现,以及如何在Vue中处理跨域请求,包括使用代理、JSONP、CORS等方法。什么是跨域请求?

开源网安入选广东省网络空间安全标准化技术委员会新技术及应用安全技术工作组成员单位

近日,第二届广东省网络空间安全标准化技术委员会(GD/TC124)(以下简称省网安标委)正式成立。为进一步发挥省网安标委在支撑网络强国建设、推进网络安全产业高质量发展过程中,示范引领核心技术攻关、创新产品研发、行业应用推广的重要作用,由省网安标委秘书处拟牵头组建数据安全技术工作组、网络安全技术工作组、新技术及应用安全技

GDPU 数据结构 天码行空3

一、【实验目的】1、掌握建立单链表的基本方法。2、掌握单链表的插入、删除算法的思想和实现二、【实验内容】仿照教材中的单链表实现例子,自己设计一个有序单链表,单链表中的数据元素为整型并递增有序。有序单链表的定义:逻辑结构:有序线性表,数据元素递增有序存储结构:链式操作集合:初始化、插入、删除、撤销(1)ListIniti

JavaWeb 学习笔记 6:会话跟踪

JavaWeb学习笔记6:会话跟踪HTTP协议本身是无状态的,所以不能跟踪会话状态。所以会有额外的技术用于跟踪会话:Cookie,客户端技术Session,服务端技术1.Cookie1.1.写入Cookie可以在服务端通过HttpServletResponse.addCookie向浏览器写入Cookie:@WebSer

C++11之基础篇

C++11C++11简介统一的列表初始化{}初始化std::initializer_list声明autodecltypenullptr范围for循环STL中一些变化arrayforward_listunderored_map,underored_setC++11简介在2003年C++标准委员会曾经提交了一份技术勘误表(

Vue的`provide`和`inject`特性:上下文传递与数据共享

Vue的provide和inject特性:上下文传递与数据共享Vue.js是一款流行的前端JavaScript框架,它提供了丰富的功能来构建可维护和可扩展的用户界面。其中,provide和inject特性是Vue中的一项强大功能,它们允许你在父组件提供数据,并在子组件中进行注入,实现了上下文传递和数据共享的目的。本文将

RockTree TOKEN2049 Party爆火,一场千亿规模的“超级聚会”

今年9月11日至17日期间,在新加坡举办的TOKEN2049大会,成为了今年同类活动中规模最大、最火爆的一次Web3行业盛会。据悉,本届TOKEN2049迎来了来自3,500多个组织超10,000名与会者,并有一众重磅加密行业嘉宾出席会议。而在TOKEN2049大会举办期间的系列活动中,由RockTreeCapital

腾讯云16核CPU服务器配置大全,CVM和轻量服务器

腾讯云16核CPU服务器有哪些配置可以选择?可以选择标准型S6、标准型SA3、计算型C6或标准型S5等,目前标准型S5云服务器有优惠活动,性价比高,计算型C6云服务器16核性能更高,轻量16核32G28M带宽优惠价3468元15个月,腾讯云百科分享腾讯云16核CPU服务器可以选择的云服务器CVM规格列表:目录腾讯云16

恒运资本:沪指震荡涨0.28%,医药板块强势拉升,金融等板块上扬

15日早盘,沪指盘中震荡上扬,科创50指数表现强势;北向资金小幅净流入。到午间收盘,沪指涨0.28%报3135.31点,深成指、创业板指涨均0.11%,科创50指数涨1.04%;两市合计成交4357亿元,北向资金净买入1.13亿元。盘面上看,医药、医疗保健板块涨幅居前,旅游、半导体、零售、纺织服装、钢铁、石油、地产、保

热文推荐