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

架构师备战(三)-软件工程(八) UML之类图与对象图详解类图和对象图基本上是一样的,只是对象图一般会在类前面有个冒号,或者变量名:类名, 具体的属性可能会具有具体的值。

大家好,欢迎来到IT知识分享网。

1、类图与对象图

1.1、类图与对象图的概念

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

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

1.2、类图与对象图的区别

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

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

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

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

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

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

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

1.3、类与类之间的关系

类与类之间的关系

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

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

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

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

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

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

1.4.1、依赖关系

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

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

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

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

1.4.2、泛化关系

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

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

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

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

1.4.3、关联关系

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

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

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

整体是带有菱形的那一端

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

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

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

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

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

组合和聚合的应用场景

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

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

1.4.4、实现关系

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

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

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

2、小结

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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/47471.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信