文章目录
简介
统一建模语言 UML(Unified Modeling Language)可以帮助我们表示软件的结构,不同的模块,类和对象如何相互交互,以及他们之间的关系是什么。
uml经常与面向对象的设计结合使用,他具有更广泛的适用范围。
UML分类
统一建模语言 UML(Unified Modeling Language),又可以静动分为静态视图和动态视图。静态图分为:用例图,类图,对象图,包图,构件图,部署图。动态图分为:状态图,活动图,协作图,序列图。
我平常用到最多的就是
- 序列图-时序图(Sequence Diagrams)
- 类图
UML工具生成类图:
1. IntelliJ IDEA
提供了可以查看类图的快捷键:
点击右键,选择 Diagrams,其中有 show 和 show … Popup,前者新建在标签页内,后者以浮窗的形式展示。
2. Android studio
没有内置diagrams。可以下载 UML插件:SimpleUML,具体可以查看stack overflow连接。
stack overflow:
How to generate Class Diagram (UML) on Android Studio
3. power designer
3.1 power designer来将 java代码生成类图
我们也可以通过power designer来将 java代码生成类图。
文件->新建模型
然后 如图选择 ObjectOrientedModel :
以java为例:
语言->reverse engineer java
将所选择的java文件添加进去。点击确定。
然后点击查看即可:
注意:需要双击 包名下的classDiagram_1文件才能看到类图。
3.2 类图生成java代码
- 去掉注释: 语言->edit current object language -> Java::Generation\Options\GenerateOID
- 语言->generate java code
- 选择生成文件和路径
- 查看生成的路径
uml类图关系画法
依赖关系
用于定义一个类以某种方式依赖于另一个类,而另一个类可能依赖于或不依赖于第一个类。
被称为: Use-A关系
A类是B类的变量 ,而A类持有B类的引用。
泛化关系(Generalization)
当一个类表示多个类的共享特征的时候,就称为泛化。
描述继承关系称为泛化。
继承也被称为Is-A关系。
相当于java中的继承或者实现。
关联关系(association)
图中依次为 单项关联 双向关联 自关联。
实现关系
java中的实现接口
聚合关系
聚合视为Has-A关系。
表示整体和部分的关系。重点是整体和部分可以分开。
比如学生和学校,但是学生可以离开学校去网吧。
组合关系
和聚合比较像,但是 是强引用的关系,一般认为是不可分开的,当主类不再存在的时候,依赖类也不再存在。