UML(Unified Modeling Language,统一建模语言)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。
方便程序员间交流,读别人代码是真的痛苦。
UML主要有以下作用:
UML图分类:
其中类图是描述类与类之间的关系的,是UML图中最核心的,本文将结合PlantUML展开介绍类图,如果该文章点赞破百,则将会更新其他UML图分类。
类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。它既用于应用程序的系统分类的一般概念建模,也用于详细建模,将模型转换成编程代码。类图也可用于数据建模。
只要是在类中用到了对方,那么他们之间就存在依赖(Dependency)关系。如果没有对方,连编绎都通过不了的那种。比如
1) 类中用到了对方
2) 是类的成员属性
3) 是方法的返回类型
4) 是方法接收的参数类型
5) 方法中使用到
泛化关系(Generalization)是实际上是继承关系,是依赖关系的特例,如果A类继承了B类,那么A和B存在泛化关系。
实现关系(Realization)实际上就是类和接口的关系,表示类是接口所有特征和行为的实现,也是依赖关系的特例。
关联关系(Association)实际上是类和类之间的联系,是一种拥有的关系,它使一个类知道另一个类的属性和方法,也是依赖关系的特例。
关联具有<font color=red>导航性</font>:即双向关系或单向关系,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。nm、1n等标识可无。
聚合关系(Aggregation)表示的是整体和部分的关系,整体与部分可以分开,部分可以脱离整体单独存在,属于关联的特例,可用箭头标识导航性,使用带空心菱形的实线来表示:
组合关系(Composition)也是整体与部分的关系,但是整体与部分不可以分开,部分可以脱离整体单独存在,属于关联的特例,可用箭头标识导航性,使用带实心菱形的实线来表示:
说了这么多,那么怎么画类图呢?且继续往下看。
在IDEA安装PlantUML插件,以便操作演练,当然了如果不想安装,也可以使用PlantUML在线网站,跳过本节。
首先需要安装Graphviz可视化图形软件提供依赖支持。
打开IDEA,File->settings->plugins,搜索uml,安装PlantUML
安装好后重启IDEA,就能新建PantUML File了。
如果未定义就直接使用,默认为类。
类型 | 关键字 | 图例 |
---|---|---|
类 | class | |
抽象类 | abstract | |
接口 | interface | |
接口 | 棒棒糖样式 | |
枚举 | enum | |
注释 | annotation | |
泛型 | 加<?..> |
访问范围 | 符号 |
---|---|
private | - |
protected | /# |
package private | ~ |
public | + |
此外通过修饰符{static}、{abstract},可以定义静态、抽象的方法或者属性。
'>'表示箭头,‘|>’表示三角箭头,'o'表示空心菱形,'*'表示实心菱形
‘.’表示虚线,‘-’表示实线,一个是水平方向,两个以上是竖直方向。
这样一来就能表示各种关系的线了。
关系 | 符号 | 图例 |
---|---|---|
依赖 | .> | |
泛化 | -> | |
实现 | .|> | |
关联 | - | |
聚合 | -o | |
组合 | -* |
画类图还有更多细节和扩展可参考PlantUML文档:https://plantuml.com/zh/class-diagram
踩了很多坑,比如安装Graphviz时没有执行”dot -c“指令,idea报错全网还找不到,从入门到放弃 。
如果该文章点赞破百,则将会更新其他UML图分类。
原创不易,请勿转载(
本不富裕的访问量雪上加霜)博主首页:https://blog.csdn.net/qq_45034708
如果文章对你有帮助,记得关注点赞收藏❤
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。