设计模式:02-UML类图

一、UML类图基本介绍

1、UML简介

(1)基本介绍

  • 统一建模语言或标准建模语言(UML Unified Modeling Language) , 是一种用于软件系统分析和设计的语言。
  • UML是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。
  • UML规范用来描述建模的概念有,类(对象的)、对象、关联、职责、行为、接口、用例、包、顺序、协作,以及状态。

(2)UML分类

  • 用例图
  • 静态结构图:类图、对象图、包图、组件图、部署图
  • 动态行为图:交互图(时序图与协作图)、状态图、活动图

  类图是描述类与类之间的关系的,是UML图中最核心的。

2、UML类图简介

    类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。类图中的类,与面向对象语言中的类的概念是对应的。类图中最基本的元素是类、接口。
(1)类
在这里插入图片描述
    在类的UML图中,使用长方形描述一个类的主要构成,长方形垂直地分为三层,以此放置类的名称、属性和方法。

行数代表内容格式
第一行表示类的名字仅名字
第二行表示类的属性可见性 名称:类型 [ = 默认值 ]
第三行表示类的方法可见性 名称(参数列表) [:返回类型 ]

可见性符号:属性和方法

符号代表内容
+public
-private
#protected
~default,也就是包权限
_下划线表示static
斜体表示抽象

(2)抽象类
    一般类的类名用正常字体粗体表示;抽象类名用斜体字粗体
(3)接口
在这里插入图片描述

行数代表内容格式
第一行表示接口的名字明确写上<<接口>>的标识,然后换行写下接口名
第二行表示接口的方法可见性 名称(参数列表) [:返回类型 ]

(4)其他
    除了以上图示之外,还会有简单类、多例类、活动类等,这些在类图中并不常用,一般如果一个类只有方法没有属性,例如常见的还有一种对象,那就是下图表示的注释
在这里插入图片描述

二、类关系

类的关系总共有6种:

  • 泛化:继承、实现
  • 关联:聚合、组合、 关联
  • 依赖:依赖

    六种关系的箭头表示:
在这里插入图片描述

1、泛化(Generalization)

泛化(Generalization)关系:用于描述父类与子类之间的关系,父类又称作超类或者其类,子类又称为派生类。注意,父类和子类都可为抽象类或者具体类。也表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。泛化包含2种关系:继承、实现。
    (1)继承(Inheritance)关系:用于描述父类(基类)与子类(派生类)之间的关系。 子类继承父类的所有功能,父类所具有的属性、方法,子类应该都有。子类中除了与父类一致的信息以外,还可拥有自己特有的信息。
    示例:鸟类继承抽象动物类
在这里插入图片描述

    (2) 实现(Realize)关系:主要用描述接口和实现类的关系。 接口(包括抽象类)是方法的集合,在实现关系中,类实现了接口,类中的方法实现了接口声明的所有方法。
    示例:大雁实现了飞翔接口
在这里插入图片描述

2、关联(Association)

关联(Association)关系: 对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。关联包含3种关系:聚合、组合、关联。
    (1)聚合(Aggregation)关系:描述整体和部分的关系,整体与部分可以分开。他体现的是整体与部分,是一种“弱拥有”的关系,即has-a的关系。聚合是整体和个体之间的关系。
    示例:每一只大雁都属于一个大雁群,一个大雁群可以有多只大雁。当大雁死去后大雁群并不会消失,两个对象生命周期不同
在这里插入图片描述

    注意:聚合关系只是将一些对象聚集在一起,但他们的关联是相对较弱的,也就是说,局部对象是可以脱离整体对象而单独存在的
    (2)组合(Composition)关系:描述整体与部分的关系,但是整体与部分不可以分开。他体现的是一种contains-a(包含)的关系,这种关系比聚合更强,也称为强聚合。
    示例:鸟和翅膀就是组合关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。
在这里插入图片描述

    (3)关联(Association)关系:指的是类与类之间的联接,它使一个类知道另一个类的属性和方法(成员变量体现)。A类依赖于B对象,并且把B作为A的一个成员变量, 则A和B存在关联关系。
    示例:企鹅需要‘知道’气候的变化,需要‘了解’气候规律。当一个类‘知道’另一个类时,可以用关联。
在这里插入图片描述

3、依赖(Dependency)

依赖(Dependency)关系:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。依赖包含1种关系:依赖。
    依赖(Dependency)关系:指的是类与类之间的联接。依赖关系表示一个类依赖于另一个类的定义,体现在某个类的方法使用另一个类的对象作为参数。假设A类的变化引起了B类的变化,则说名B类依赖于A类。
    示例:动物依赖氧气和水。调用新陈代谢方法需要氧气类与水类的实例作为参数(表达了一个物体需要通过另一个物体来完成工作,但他们之间没有包含的关系)
在这里插入图片描述

三、类图绘制

在这里插入图片描述
参考:
UML类图 详解
UML类图和时序图
看懂UML类图和时序图
看懂UML类图和时序图
五分钟带你读懂UML类图
UML(一)Class 类图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值