首页 > 其他分享 >六大类UML类图关系

六大类UML类图关系

时间:2023-07-18 11:47:00浏览次数:32  
标签:关系 类图 关联 箭头 六大类 UML 用带

https://segmentfault.com/a/1190000021317534

 

UML,全称Unified Modeling Language,统一建模语言。而UML图分为用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等9种图。

在面向对象语言中,我们经常看到有用UML类图去表示各种接口和类之间关系的。但是,每次看的都是云里雾里,搞不清楚那些虚线,箭头都是代表什么意思。今天,就让我们来一探究竟吧。

UML类图中有六种关系,分别是依赖关系,关联关系,聚合关系,组合关系,实现关系,泛化关系。

经过我自己的理解,画出了六种关系的示例图。类的成员变量和方法前面的修饰符有public, private, protected, default,在UML类图中分别用 +, -, #, ~表示。

一、依赖关系

依赖关系是一种使用关系,表示某个类依赖于另外一个类,通常表现为,某个类的方法的参数使用了另外一个类的对象。

在UML类图中,依赖关系用带箭头的虚线表示,箭头从使用类指向被依赖的类。下图中表示,程序员依赖于计算机来编写代码。
file

二、关联关系

关联关系是对象之间的一种引用关系,表示一个类和另外一个类之间的联系,如老师和学生,丈夫和妻子等。

关联关系有单向和双向的。在UML类图中,单向关联用一个带箭头的实线表示,箭头从使用类指向被关联的类,双向关联用带箭头或者没有箭头的实线来表示。
file

上图表示老师和学生之间的关系是双向的,一个老师可以有多个学生,一个学生也可以有多个老师。学生和课程之间是单向的,一个学生会学习多门课程,而课程是一个抽象的概念,它不拥有学生。

三、聚合关系

聚合关系是关联关系的一种,表示整体和部分之间的关系,如学校和老师,车子和轮胎。

聚合关系在类中是通过成员对象来体现的,成员是整体的一部分,成员也可以脱离整体而存在。如老师是学校的一部分,同时老师也是独立的个体,可以单独存在。

在UML类图中,用带空心菱形的实线来表示聚合关系,菱形指向整体。
file

四、组合关系

组合关系是整体和部分之间的关系,也是关联关系的一种,是一种比聚合关系还要强的关系。部分对象不能脱离整体对象而单独存在,如人的身体和大脑之间的关系,大脑不能脱离身体而单独存在。

在UML类图中,用带实心菱形的实线来表示组合关系,菱形指向整体。

file

五、实现关系

实现关系就是接口和实现类之间的关系。类实现了接口中的抽象方法。

在UML类图中,用带空心三角箭头的虚线来表示实现关系,箭头从实现类指向接口。

file

如上图,北京大学和清华大学分别实现了大学接口。

六、泛化关系

泛化关系其实就是父子类之间的继承关系,表示一般与特殊的关系,指定子类如何特殊化父类的特征和行为。

在UML类图中,用带空心三角箭头的实线来表示泛化关系,箭头从子类指向父类。

file

如上图,父类动物有一个吃的方法,小鸟和狮子都继承于动物类,小鸟有它特有的方法飞行,而狮子有特有的方法奔跑。

六种关系中,从弱到强依次是:
依赖关系 < 关联关系 < 聚合关系 < 组合关系 < 实现关系 = 泛化关系

标签:关系,类图,关联,箭头,六大类,UML,用带
From: https://www.cnblogs.com/gym333/p/17562442.html

相关文章

  • GoLand中使用PlantUML生成Go UML图,使用go-callvis生成Go 调用关系图
    1.在golandIDE中安装plantuml插件2.安装go-package-plantuml工具goget--insecuregitee.com/jscode/go-package-plantuml.git修改go-package-plantuml代码支持outputfileifopts.OutputFile==""{result.OutputToFile("/tmp/uml.txt")}else{result.OutputToFile(opts.Ou......
  • 21UML 4+1视图
    视图是软件构建的视角4:逻辑视图(系统分析、设计人员:类和对象)、实现视图(程序员:代码)、进程视图(系统集成人员:进程、并发、线程)、部署视图(系统和网络工程师:软硬件映射)1:用例视图(最终用户、需求分析)......
  • 20UML基本概念
    UML是统一建模语言,语言无关、平台无关。包括构造块、规则、公共机制。构造块又包括事物、关系、图。事物又分为:结构事物(静态)、行为事物(动作)、分组事物(盒子)、注释事物(注释)图分为:静态图:类图-对象图-构件图部署图-软硬件之间映射制品图-物理结构包图、组合结构图动态图:用......
  • UML图
    声明:本设计模式系列内容大部分内容来源b站黑马程序员设计模式视频及其他大佬文章和自我总结b站黑马程序员设计模式目录UML图1.类图概述2.类图的作用3.类图表示法3.1类的表示方式3.2类与类之间关系的表示方式3.2.1关联关系3.2.2聚合关系3.2.3组合关系3.2.4依赖关系3.2.5......
  • Golang的类图
    @目录1.依赖(Dependency)1.1概念1.2代码示例1.3类图示例2.泛化(Generalization)-继承2.1概念2.2代码示例2.3类图3.泛化(Generalization)-实现3.1概念3.2代码示例3.3类图4.关联关系(Association)4.1概念4.2代码示例4.3类图5.聚合关系(Aggregation)5.1概念5.2代码示例5.3......
  • 看懂uml图和时序图
    继承与泛化继承关系:isa关系,两个对象之间可以用isa表示,就是继承关系。泛化:继承非抽象类,带空心箭头的实现表示。实现:继承抽象类,带空心箭头虚线表示。聚合与组合聚合:整体与部分的弱依赖关系,带空心菱形箭头的直线表示。组合:整体与部分的强依赖关系,带实心菱形箭头的直线表示......
  • 画出创建型设计模式的类图
    工厂方法FactoryMethod抽象工厂AbstractFactory单例模式Singleton建造者模式Builder原型模式Prototype......
  • 画出结构型设计模式的类图
    装饰器模式Decorator适配器模式Adapter桥接模式Bridge组合模式Composite代理模式Proxy静态代理JDK动态代理享元模式Flyweight外观模式Facade ......
  • 一文掌握设计模式(定义+UML类图+应用)
    一、引子从学编程一开始就被告知,要想做一名优秀的程序员两大必要技能:1.源码阅读(JDK、C等底层语言封装)2.设计模式(使用某种语言优雅的落地典型场景功能)。一般随着工作年限的增长,被迫对底层语言/框架源码阅读的越来愈多,但是设计模式如不刻意去学习,永远不会真正掌握。笔者把设计......
  • UML 中的六大关系详解
    转载UML中的六大关系详解 UML中的六大关系  在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。 1、继承关系—泛化(Generalization)  指的是一个类(称为子类、子接口)继承......