【设计模式】UML类图关系与符号

简介: UML-Unified Model Language 统一建模语言,是在开发阶段,说明、可视化、构建和书写一个面向对象软件的开放方法。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之用的文本。

一、UML简介

UML-Unified Model Language 统一建模语言,是在开发阶段,说明、可视化、构建和书写一个面向对象软件的开放方法。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之用的文本。


1.1 UML类图常用关系

UML类图是用户将所希望描述的事物抽象为类,描述类的内部结构和类之间关系的设计视图。在UML类图中,常有以下几种关系:泛化(Generalization)、实现(Realization)、关联(Association)、聚合(Aggregation)、组合(Composition)和依赖(Dependency)。


按照关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖。


1.2 UML模型结构

视图 view:多个图形组成的一个抽象集合,一个系统模型可能有多个视图,每个视图从特定角度描述系统特征,如用户视图、结构视图、行为视图、实现视图等。

图 Diagram:UML图是UML视图内容的图形,如用例图、类图、对象图、包图等。

模型元素 Model Element:指UML图中使用的一些概念,如类、对象、消息,以及概念之间的关系,如关联关系、以来关系等。

通用机制 General Mechanism:UML提供的通用机制为模型元素提供额外的注释、语义和扩展机制,允许用户对UML进行扩展。

1.3 UML类的表示

类由一个矩形框表示,有3层:

image.png


成员变量和成员方法前面有权限修饰符:

“-”:private——私有

“+”:public——公有

“#”:protected——保护性

image.png


二、类之间的关系

2.1 泛化(Generalization)

含义:类的继承关系。

表示:用空心三角和实线,空心三角指向父类。

image.png


2.2 实现(Realization)

含义:类与接口的关系,表示类是接口所有特征和行为的实现。

表示:用空心三角和虚线,空心三角指向接口。

举例:狗和猫实现了动物的“eat()”和"run()"的接口。


image.png

2.3 关联(Association)

关联是一种拥有关系(has),一个类可以条用另一个类的公有的属性和方法。在类中以成员变量的方式表示。比如老师有自己的学生,知道学生的姓名学号成绩;学生有自己的老师,也知道老师的姓名和所教的科目。关联分为单向关联、双向关联和自关联。


(1)单项关联

表示:带箭头的直线表示。

举例:老师(Teacher类)有自己的地址(Address类)

image.png


(2)双向关联

含义:指双方都知道对方的存在,都可以调用对方的公共属性和方法。

表示:用一条直线连接两个类,也可以用双向箭头。

举例:老师(Teacher类)有自己的学生(Student类),学生也有自己的老师。


image.png

(3)自关联

含义:自己引用自己

表示:带箭头的直线,指向自己。

举例:


image.png

2.4 聚合(Aggregation)

含义:整体与部分的关系,部分离开整体后可以单独存在。常用于类的成员变量。

表示:带空心菱形和箭头的直线(或没有箭头),菱形挨着整体,箭头指向部分。

举例:汽车和轮胎,轮胎是汽车的一部分,但轮胎也可以单独存在。

image.png


2.5 组合(Composition)

含义:整体与部分的关系,部分离开整体后不可以单独存在,代表整体的对象负责代表部分的对象的生命周期。常用于类的成员变量。

表示:带实心菱形和箭头的直线(或没有箭头),菱形挨着整体,箭头指向部分。

举例:公司和部门,部门是公司的一部分,但部门不可以单独存在。


image.png

2.6 依赖(Dependency)

含义:是一种使用的关系,即一个类的实现需要另一个类的协助,常用于类方法的局部变量、方法参数等。

表示:带箭头的虚线。

举例:Animal的eat()方法的参数是Food


相关文章
|
17天前
|
设计模式 Java 程序员
【23种设计模式·全精解析 | 概述篇】设计模式概述、UML图、软件设计原则
本系列文章聚焦于面向对象软件设计中的设计模式,旨在帮助开发人员掌握23种经典设计模式及其应用。内容分为三大部分:第一部分介绍设计模式的概念、UML图和软件设计原则;第二部分详细讲解创建型、结构型和行为型模式,并配以代码示例;第三部分通过自定义Spring的IOC功能综合案例,展示如何将常用设计模式应用于实际项目中。通过学习这些内容,读者可以提升编程能力,提高代码的可维护性和复用性。
【23种设计模式·全精解析 | 概述篇】设计模式概述、UML图、软件设计原则
|
5月前
|
Java uml
使用工厂方法模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实
该博客文章通过UML类图和Java代码示例,展示了如何使用工厂方法模式设计一个支持加法、减法、乘法和除法运算的计算机程序,并严格按照类图设计实现程序。
|
5月前
|
Java uml
1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程
该博客文章展示了如何使用简单工厂模式设计一个程序,该程序能够根据用户输入的运算符(加、减、乘、除)对两个数进行计算,并提供了相应的UML类图和Java源码实现。
1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程
|
7月前
|
应用服务中间件 uml
【UML】软件工程中常用图:类图、部署图、时序图、状态图
【UML】软件工程中常用图:类图、部署图、时序图、状态图
1117 1
|
4月前
|
设计模式 Java 测试技术
Java设计模式-UML与设计原则(1)
Java设计模式-UML与设计原则(1)
|
5月前
|
数据可视化 Java uml
精通UML:从类图到序列图的实战指南
【8月更文第23天】统一建模语言(Unified Modeling Language, UML)是一种用于软件工程的标准图形化语言,它提供了一套工具来帮助开发团队可视化、构造和文档化软件系统。在UML中,类图和序列图是最常用也是最重要的两种图。类图用于描述系统的静态结构,而序列图则用于表示对象之间的交互和系统的动态行为。
253 5
|
5月前
|
设计模式 uml
设计模式常用的UML图------类图
这篇文章介绍了UML中类图的基本概念和用途,详细解释了类与接口、类之间的关系,包括继承、实现、组合、聚合、关联和依赖等六种关系,并展示了它们在类图中的表示方法。
设计模式常用的UML图------类图
|
5月前
|
uml
UML 类图几种关系(依赖、关联、泛化、实现、聚合、组合)及其对应代码
UML 类图几种关系(依赖、关联、泛化、实现、聚合、组合)及其对应代码
821 0
|
7月前
|
设计模式 uml
设计模式学习心得之前置知识 UML图看法与六大原则(下)
设计模式学习心得之前置知识 UML图看法与六大原则(下)
52 2
|
7月前
|
设计模式 数据可视化 程序员
设计模式学习心得之前置知识 UML图看法与六大原则(上)
设计模式学习心得之前置知识 UML图看法与六大原则(上)
53 0