【Android】UML建模

24 篇文章 0 订阅
20 篇文章 0 订阅

1 正向、逆向工程在UML图中的应用

原文链接:https://blog.csdn.net/qq_32036981/article/details/109459326

UML建模目的:
一个复杂的架构,在纸上去写去画,是非常复杂的,但通过UML建模就能实现一个脑图,一目了然。

正向工程:从UML建模中 导出 Java类;
逆向工程:把一个或多个Java文件 导入 UML建模工具当中,变成oom类图模型。(这里注:oom不是OutOfMemory,而是ObjectOriented Model)。

安装PowerDesigner16.5。

1.1 逆向工程(导入到PowerDesigner)

导入Java文件流程:1. 生产ClassDiagram;2. 导入Java文件,生成类图。

具体如下:
(1)准备Java文件:在Android Studio中新建一个工程,并写几个有相互依赖关系的类,复制文件夹到桌面,删除MainActivity.java。

(2)创建oom类图模型:

打开PowerDesigner,文件----->新建模型,弹出下图:
在这里插入图片描述

生成后,选中ClassDiagram_1,选择语言,Reverse Engineer Java…,添加Java文件。
在这里插入图片描述
与Classes、Interfaces同目录的ClassDiagram_1就是类图,双击后就可以看到。

在这里插入图片描述
类图中可以看出,减号➖表示的是属性,加号➕表示的是方法,虚线空心箭头表示实现,实线空心箭头表示继承。

1.2 正向工程(从PowerDesigner导出)

UML建模工具将oom类图模型 导出 Java文件。

导出Java文件流程:

  1. 选择语言,Generate Java Code。
  2. 选择生产文件和路径。
  3. 查看生产的Java文件。

在这里插入图片描述

在这里插入图片描述

生成的Java文件中有很多注释,怎么办?在PowerDesigner中进行设置。
点击语言,选择Edit Current Object Language…

在这里插入图片描述
之后再按照上面步骤重新生成导出Java文件。

2 UML建模中的关系画法(依赖,泛化,关联,实现)

原文链接:https://blog.csdn.net/qq_32036981/article/details/109477997

UML建模中的关系包括:依赖、泛化、关联、实现、聚合、组合等。

2.1 依赖关系(dependence)

B类是A类的变量,A类持有B类的引用。像这种关系为依赖关系。
在这里插入图片描述

2.2 泛化关系(generalization)

泛化关系相当于Java当中的继承,比如:A类有两个子类,B类和C类。B类和C类具有父类A类的属性和方法。
在这里插入图片描述

2.3 关联关系(association)

关联关系包括:单向关联、双向关联和自关联。默认创建的关联关系是双向关联,可以理解为你中有我、我中有你。

两个类,靠近()的类为当前类,远离的为其他类 :

0…1 : 其他类的一个对象 与 当前类的零个或一个对象 有关联
0…* : 其他类的一个对象 与 当前类的零个或无数个对象 有关联
1…1 : 其他类的一个对象 与 当前类的一个对象 有关联
1…* : 其他类的一个对象 与 当前类的一个或无数个对象 有关联

  • : 其他类的一个对象 与 当前类的无数个对象 有关联
    在这里插入图片描述

2.4 实现关系(realization)

实现关系就是Java当中讲的实现接口。
在这里插入图片描述

2.5 聚合关系(aggregation)

聚合关系表示的是整体和部分的关系,但是整体和部分是可以分开的。比如:学校和学生的关系,学校和学生可以是一体的,学生也可以离开学校。

在这里插入图片描述

2.6 组合关系(composition)

组合和聚合看起来很像,但它们的区别是:聚合的整体和部分可以分开,但组合就相当于强引用,组合的整体和部分不可分开。比如View和ViewGroup是不能分开的。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值