zl程序教程

您现在的位置是:首页 >  其他

当前栏目

设计模式之基础:UML类图怎么看?

基础设计模式 怎么 uml 类图
2023-09-14 09:14:06 时间

前言

        UML类图看和画其实很简单,看懂就更简单了:第一,简单了解一下UML类图是干什么用的; 第二了解一UML类图的主要描述对象是什么; 第三,UML类图描述的对象之间有哪些关系;最后,了解一下,这些关系怎么用图形化的符号来描述它。

什么是UML类图?

        类是具有相似结构,属性和行为的一组对象的统一描述,UML类图就是用一系列如箭头,实线,虚线等图形符号来描述类之间关系的图形。行话说,一图胜千言,在实际业务设计开发过程中,清晰的UML类图可以快速让我们搞清楚类之间的关系,也方便于沟通交流。

类图的主要描述对象

        通常情况下,类图描述的主体是对象是类和接口。类是具有相同属性和行为的对象的抽象,接口则抽象描述了一系列行为。

        类有三部分组成,第一部分,是类名; 第二部分是类的属性; 第三部分是类的行为;其中的“+”,”-“,”#“号用于表述类的属性或行为的可见性,”+“表示public级别,”-“表示private级别,”#“表示protected级别,省略表示与同package可见。如果类只抽象到了发生或行为的一种,绘制的时候可以省略相应的部分。

接口

        接口有两部分组成,第一部分,是接口的名称,第二部分是接口的行为。

类之间有哪些关系

        类之间的常见关系有以下几种:继承,实现,聚合,组合,依赖,关联。

继承

        继承关系比较好理解,子类继承父类,子类就拥有了父类的属性和行为。

实现

        实现是指类与接口的关系,一些特定行为可以抽象为一个接口,一个类通过实现这个接口,就拥有了这个接口对应的行为。如奔跑是一个行为,受到威胁时奔跑,进行捕猎时奔跑,都是奔跑,所以可以抽象为一个奔跑的接口。

聚合

        聚合关系表示两个对象之间整体与局部的关系,如拥有与被拥有或者是包含与被包含,但是这种关系相对来说弱一些,如狼群与狼的关系就是聚合关系,狼群里会有很多的狼,某一头狼则属于狼群,但是这种属于并不是强约束的关系,即按常理来说狼是群居动物,一头狼肯定归属于一个狼群,个别情况下也会有孤狼产生,所以这就是所谓的拥有与被拥有的关系比较弱。

组合

        组合关系与聚合关系比较类似,也是描述两个对象之间拥有与被拥有或者是包含与被包含,这种整体与局的关系,但是这种关系非常强烈,如果狼与牙齿就是组合关系,一头狼肯定是有一口锋利的牙齿的,这种整体与局部的关系非常强烈,属于强约束,所以就是组合关系。

依赖

        依赖关系描述的是对象之间需要与被需要的关系,如狼想要生存下去,需要空气,水,食物,狼与空气,水,食物的关系就是依赖关系。

关联

        关联关系与依赖关系比类似,可以对比着理解,也是描述对象之间的需要与被需要的关系,只是这种关系的相对弱一些,如狼与森林的关系,狼必须得生活在森林吗,草原好像也可以,但是没有水,空气,食物肯定活不了,所以狼与空气的关系可以理解为依赖关系,狼与森林的关系可以理解为关联关系。

总结

        先要看懂UML类图,要先理解类图描述了类之间的哪几种关系,要想牢固掌握,可以把这六种关系分成三组,对比着理解记忆,继承与实现,聚合与组合,关联与依赖。那么UML是用什么图形化符号来描述这些关系呢?

UML类图的图形化

继承与实现

        空心三角+实线表示继承关系

        空心三角+虚线表示实现关系

聚合与组合

        空心的菱形+实线箭头表示聚合关系

        实心的菱形+实线箭头表示组合关系

关联与依赖

        实线箭头表示关联关系

        虚线箭头表示 依赖关系

画图工具推荐

        UML类图,时序图,流程图,脑图等我比较习惯用WPS,并不是说这个工具多好,用着比较顺手,就是比较恶心的是如果不开会员,好多漂亮的模板用不了,图形中元素的数量也有限制,有条件,有需要的还是充个会员会比较爽一些。

建议收藏起来,时不时拎出来熟悉一下,省得忘了。如果可以的话,点个赞,鼓励我一下。