UML-类图详解(依赖关联聚合组合泛化实现)
Posted 、Dong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UML-类图详解(依赖关联聚合组合泛化实现)相关的知识,希望对你有一定的参考价值。
文章目录
一、UML是什么?
UML,即Unified Modeling Language,翻译的意思是统一建模语言,是一种为面向对象系统的产品进行说明、可视化和编制文档的建模工具,独立于任何程序设计语言,包括Java语言。
UML描述和反映是事物的实体、性质、关系、结构、状态和动态变化过程,同时作为建模语言,它也有着严格的语法和语义规范。
UML采用一组图形符号来描述软件模型,这些图形符号具有简单、直观和规范的特点,开发人员学习和掌握起来比较简单。所描述的软件模型,可以直观地理解和阅读,由于具有规范性,所以能够保证模型的准确、一致。
在UML类图中,类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示。
二、类图中属性的表示方式
类属性表示方式:可见性 名称 :类型 [ = 缺省值]
[]中括号中的内容表示是可选的
举例:下图表示一个Employee类,它包含name,age和email这3个属性,以及modifyInfo()方法。
那么属性/方法名称前加的加号和减号是什么意思呢?它们表示了这个属性或方法的可见性,UML类图中表示可见性的符号有三种:
-
+ :表示public
-
- :表示private
-
#:表示protected(friendly也归入这类)
三、类图中方法的表示方式
类方法表示方式:可见性 名称(参数列表) [ : 返回类型]
[]中括号中的内容表示是可选的
举例:在下图的Demo类中,定义了3个方法:
- public方法method1接收一个类型为Object的参数,返回值类型为void
- protected方法method2无参数,返回值类型为String
- private方法method3接收类型分别为int、int[]的参数,返回值类型为int
四、类图中类关系的表示方式
在软件系统中,类并不是孤立存在的,它们之间存在各种关系。根据类之间的耦合度,可以从弱到强进行排列,大致有以下六种,如图所示:
1、依赖(Dependence)
含义:体现了类之间的弱作用关系,是一种临时性的使用关系,通常用虚线+箭头表示。
举例:依赖关系是类之间最弱的关系,比如,类A的一些方法参数中使用了类B的实例;类A的一些方法逻辑中调用了类B的方法或变量等等。
2、关联(Association)
含义:体现了类之间的强作用关系,通常用实线或实线+箭头表示,这里的关联关系指的是一般关联关系,后面的聚合和组合也属于关联关系。
举例:关联关系是类之间的引用关系,生活中的常见,比如有:手机和充电线,老师和学生,生产者和消费者等。可以通过成员变量来实现关联关系,比如类A中使用了类B的对象引用,A和B之间就是一种关联关系。
类型:一般关联关系又可以分为单向关联、双向关联、自关联,画图表示。
3、聚合(Aggregation)
含义:体现了类之间的强作用关系,也属于关联关系的一种,是整体和局部之间的关系,是 has-a 的关系,通常用实线+虚心菱形箭头表示。
举例:聚合关系强调了整体和局部的关系,比如学校和教师,工厂和工人等,注意的是局部可以独立于整体而存在,比如工厂没了但工人还是可以存在的!通过成员属性来实现聚合关系。
4、组合(Composition)
含义:体现了类之间的强作用关系,也属于关联关系的一种,也是整体和局部之间的关系,是 cxmtains-a 的关系,通常用实线+实心菱形箭头表示。
举例:组合关系是一种耦合度更高的聚合关系,整体对象可以控制部分对象的生命周期,部分对象不能脱离整体对象而存在,比如电脑和CPU,如果CPU没了,电脑就失去了基本的运算能力等同于电脑报废。
5、泛化(Generalization)
含义:体现了类之间的继承关系,是一种耦合度最高的关系,是 is-a 的关系,通常用实线+空心三角箭头表示。
举例:泛化关系强调了一般与特殊的关系,通过Java的类继承机制实现类之间的泛化关系,比如:手机工厂,与华为手机工厂,小米手机工厂之间的关系。
6、实现(Realization)
含义:体现了接口和类之间的关系,通常用虚线+空心三角箭头表示。
举例:实现关系,通过Java的实现机制实现的,比如:手机工厂接口,与华为手机工厂实现类,小米手机工厂实现类之间的关系。
结尾
- 感谢大家的耐心阅读,如有建议请私信或评论留言。
- 如有收获,劳烦支持,关注、点赞、评论、收藏均可,博主会经常更新,与大家共同进步
以上是关于UML-类图详解(依赖关联聚合组合泛化实现)的主要内容,如果未能解决你的问题,请参考以下文章