首页 > 技术文章 > 简明UML类图教程

FLYMANJB 2020-08-03 16:19 原文

参考链接:10 分钟学会 UML 类图

UML整个系统比较复杂,但通常,我们自己些代码,只会用到最简单的类图,简要的笔记如下。

假设我们要设计一个动物园系统,里面最基本的组成部分,每个动物都是Animal类:

图片名称

那么怎么抽象这个类呢,通过相应的属性和方法来模拟:

图片名称

这些属性/方法主要有三种权限:

  • private(-):在类的外部无法被访问(即使是它的子类、或者通过 类.私有进行访问 )
  • protected(#):在子类中可以访问;
  • public(+):任何地方都可以访问它们;

除此之外,不同类之间主要有4种关系(有且仅有):

图片名称

继承:海龟继承动物类,其中一种关系(海龟是动物类的一种);

关联:狗类吃食物类,两者没有依赖关系,可以互相独立存在;

聚合:说明整体、部分,一群乌龟军团,army军队,单个乌龟,依然可以单独成立;

组合:游客中心跟厕所的关系,访客大厅由厕所、售票处等组成,游客中心没有厕所就不完整,不能单独存在;

图片名称

除此之外,我们还需要对它们之间的数量关系进行约束,也称为多重性数字约束。例如:一个访客大厅类只能有一个售票处,但是厕所要好几个。将约束关系写为m..n

图片名称

需要说明的是,数字约束关系是互相的,比如说:购物网站里一个用户可以有多个订单类,但一个订单类只能由一个用户拥有。


举例,一个购物网站的架构:

图片名称

此外,对于组合关系来说,被组合的对象是不能单独存在的,比如,当订单类被销毁后,相应的购物类也会被同时摧毁:

图片名称

在写代码之前,先不要着急写,在draw.io在把整个类图的框架、交互关系、流程图画好,写代码会容易地多。

推荐阅读