欢迎大家来到IT世界,在知识的湖畔探索吧!
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、小结
今天主要学习了类图的概念和类图对应的关系的理解的图形表示,用例图和类图属于非常重要的图,我们需要化一定的时间去记住和理解这些概念和图形表示。学无止境,继续加油!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/49071.html