打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
架构师备战(三)-软件工程(八) UML之类图与对象图详解

1、类图与对象图

1.1、类图与对象图的概念

类图(class diagram)描述一组类、接口、协作和它们之间的关系

对象图(object diagram)描述一组对象及它们之间的关系、对象图描述了在类图中所建立的事物实例的静态快照

1.2、类图与对象图的区别

类图和对象图基本上是一样的,只是对象图一般会在类前面有个冒号,或者变量名:类名, 具体的属性可能会具有具体的值。

类图如下,是抽象出来的概念

对象图如下,抽象的一种具体实现,对象具有具体的变量,对象的苏还行具有具体的值。但是图的关系是一样的。

类图:分三层,第一层表示类名,第二层表示类的属性,第三层表示类具有的方法

对象图:也分三层,第一层格式“对项名:类名”,表示是类的实例化。第二层表示属性,属性可以被赋值。第三层表示方法。当然,层数是可以省略或者不写的。

1.3、类与类之间的关系

类与类之间的关系

  • 1: 表示一个集合中的一个对象与另一个集合中的1个对象
  • 0..*: 表示一个集合中的一个对象对应另一个集合中0个或多个对象(可以不对应)
  • 1..*: 表示一个集合中的一个对象对应另一个集合中1个或多个对象(至少对应一个)
  • *: 表示一个集合中的一个对象对应另一个集合中的多个对象

我们使用一个简单的类图来说明类与类之间的关系。

类和类之间可能存在1对0到多的这种关系,比如上面的一个书籍列表,可以对应0到多本书籍,也就是可以包含多本书籍,也可以不包含。所以书籍列表和书籍之间是1:0..*的关系。

如何来判断这种1对0..*多关系呢,其实可以通过E-R图来进行判断。类图里面也是同样的逻辑。只是这个类图会比E-R更加细致一点而已。

1.4、类图与对象图关系说明

1.4.1、依赖关系

概念:一个事物发生变化影响另一个事物,它们之间的关系就叫做依赖关系

使用正向虚线实心箭头表示。

上图就是表示A调用了B的方法,当B类发生变化时,A也要跟着发生变化,这就是依赖关系。

1.4.2、泛化关系

概念:泛化关系表示的是特殊和一般的关系,也是父子关系,特殊指的是子类,一般指的的父类。子类继承了父类的特点,所以子类的特殊,父类是一般。

使用正向实线空心箭头表示。

动物是一般的类,狗子是一种特殊的动物,除了会动物的喝水技能,还会自己的特殊技能汪汪叫。

1.4.3、关联关系

概念:描述了一组链,链是对象之间的连接

聚合关系:整体与部分生命周期不同,使用正向实线空心菱形头表示

组合关系:整体与部分生命周期相同,使用正向实线实心菱形头表示

整体是带有菱形的那一端

聚合和组合的共性就是都表示整体和部分的关系。比如上面的书籍列表和书籍就是整体和部分的关系

聚合和组合的不同在于生命周期是否与整体相同,相同则是组合关系,不同则是聚合关系。

比如:车子和轮胎的关系就是聚合关系,车子坏了,轮胎是新的,轮胎可以拆下来放在其他车子上。也就意味着车子的消亡,并不会影响轮子的消亡。也就是轮子(部分)的生命周期和车子(整体)的生命周期是不同的。

比如:公司和部门的关系就是组合关系,公司倒闭了,公司的部门一定也会随之消亡。不存在公司都不存在了,公司的某个部门还存在。整体和部分的生命周期是一样的,这就是组合关系。

组合和聚合的应用场景

组合和聚合的应用场景是不同的,可能导致的情景也是不一样的。主要应用在内存回收场景。

比如我们在游戏场景,我们要去捡一个装备,装备没捡到我们掉线了,服务器不能回收装备,导致内存居高不下。但是重启后又好了,因为内存回收了。这就是聚合场景导致的问题。但是组合场景又不适用,因为装备你不捡,其他人还可能去捡。

1.4.4、实现关系

概念:表示接口与类之间的关系,,接口只定义类的方法,而接口的实现类就是对接口的实现

使用正向虚线空心箭头表示

2、小结

今天主要学习了类图的概念和类图对应的关系的理解的图形表示,用例图和类图属于非常重要的图,我们需要化一定的时间去记住和理解这些概念和图形表示。学无止境,继续加油!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
UML类图
解析UML类图符号
UML类图符号简介
看懂UML类图和时序图
详解UML类图
UML学习(二)-----类图
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服