Android常见设计模式——UML图,及其使用案例

1. 前言

继续学习《Android源码设计模式解析与实战》和《Java设计模式(第2版)中文版》的时候,不可忽视的需要了解UML图。因为这种可视化的表示感觉更加直观,感觉用于前期的类关系构建非常合适。所以这里来回顾下UML图的相关知识。

如果需要上面这两本书籍pdf的可以联系我

2. 什么是UML图

Unified Modeling Language,翻译为:统一建模语言。是用来对软件密集系统进行可视化建模的一种语言。一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之用的文本。这些虽简单却非常重要,在UML规则中相互联系和扩展。

UML立足于对事物的实体、性质、关系、结构、状态和动态变化过程的全程描述和反映。UML可以从不同角度描述人们所观察到的软件视图,也可以描述在不同开发阶段中的软件的形态。

UML采用一组图形符号来描述软件模型,这些图形符号具有简单、直观和规范的特点,开发人员学习和掌握起来比较简单。所描述的软件模型,可以直观地理解和阅读,由于具有规范性,所以能够保证模型的准确、一致。

摘自:百度百科-统一建模语言

3. UML图的作用

UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。

4. 种类

截止UML2.0一共有13种图形(UML1.5定义了9种,2.0增加了4种)。分别是:用例图、类图、对象图、状态图、活动图、顺序图、协作图、构件图、部署图9种,包图、组合结构图、交互概览图3种。

各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

4.1 UML类图几种关系

UML静态视图中包含一些常见的基本关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

4.1.1 泛化(Generalization)

是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。
在这里插入图片描述

箭头为空心,且箭头指向父类。

4.1.2 实现(Realization)

也就是类与接口的关系。
在这里插入图片描述
使用空心箭头,连线为虚线,箭头指向接口。

4.1.3 关联(Association)

表示为一种拥有的关系。可以形象化的理解为一个类中拥有另一个类作为属性。比如:老师和学生,学生和课程的关系。

关联可以是双向的,也可以是单向的。
在这里插入图片描述
老师有多名学生,学生也可能有多名老师。一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。

使用普通箭头表示,或者双向不使用箭头。

4.1.4 聚合(Aggregation)

聚合关系是关联关系的一种,是整体与部分的关系。且部分可以离开整体而单独存在。比如下面的图示:
在这里插入图片描述
车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

4.1.5 组合(Composition)

组合关系是关联关系的一种,是整体与部分的关系,比聚合关系强。部分不能离开整体而单独存在

在这里插入图片描述

4.1.6 依赖(Dependency)

是一种使用的关系,即一个类的实现需要另一个类的协助。依赖是表示一个类中使用了另外一个类,最常用的依赖是在类A方法中使用了类B,那么A依赖B。如下图所示。

在这里插入图片描述

4.2 UML类图常见表示

4.2.1 类图

在这里插入图片描述
ClassName表示类名
中间部分为该类的属性,其中分别表示为可访问性,属性名,以及属性的数据类型。
第三部分为该类的方法,包括方法的可访问性,方法名,方法的参数以及方法的返回值。
其中:

  • +表示public
  • #表示protected
  • -表示private
  • i表示internal

4.2.2 对象图

在这里插入图片描述
即类的实例对象,用来指明属性值。


References

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦否

文章对你有用?不妨打赏一毛两毛

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值