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-类图详解(依赖关联聚合组合泛化实现)的主要内容,如果未能解决你的问题,请参考以下文章

UML类图关系(泛化、继承、实现、依赖、关联、聚合、组合)

UML类图关系(泛化(继承)实现依赖关联聚合组合)

UML类图关系(泛化 继承实现依赖关联聚合组合)-转

UML类图关系(泛化 继承实现依赖关联聚合组合)

设计模式之UML类图以及类间关系(泛化 实现依赖关联聚合组合)

终于分清楚依赖泛化实现关联聚合和组合了