本文描述UML中的Class Diagram,即UML类图。在UML中有很多Diagram,如下,
- Class Diagram
- Component Diagram
- Deployment Diagram
- Object Diagram
- Package Diagram
- Composite Structure Diagram
- Profile Diagram
- Use Case Diagram
- Activity Diagram
- State Machine Diagram
- Sequence Diagram
- Communications Diagram
- Interaction Overview Diagram
- Timing Diagram
对于程序员来说,Class Diagram会用的比较多。
一 推荐工具
本人使用的是Lucidchart的免费版本,对于学习来说够用了,这是专门制作各种图表的。也可以使用别的工具。
打开网页后,点击右侧的Sign up free,然后注册一个账号登录进去后,

然后会出现以下界面,默认会自动添加一个Documents,免费版本只能有3个Documents,鼠标放到红框里,

点击出现的蓝色Open,

最后会展现编辑工具视图,如下图,

上面红框是标题,可以双击修改。由于是学习UML,默认打开的工程没有提供UML工具,需要点击下面蓝色的"+Shape Library",在弹出的界面里的搜索框里输入UML,然后勾选Class Diagram,

最后点击右下角的Use selected shapes,这个界面会消失,这样就配置好了。
回到编辑界面,左侧出现了UML类图相关的图形,

类之间的关系则使用工具栏中间靠右的线型和箭头选项,如下,

二 学习记录
首先拖拽一个Class到显示窗口,如下,

1. 基本知识
该类图分为三行,
- 第一行的Class是类名,可以双击修改
- 第二行是类的属性,即成员变量,变量名左侧的符号表示Visibility,有以下几种,一般前面三个用的比较多

成员变量可以通过右侧的type来指定类型;使用"="来指定默认值 - 第三行是类的方法,其左侧的符号与成员变量相同,右侧可以使用"()"来指定参数,还有返回值类型
这里定义一个Personal类,其成员变量有name,age,方法有setName(), getName(),setAge(),getAge()和eatFood(),如下,

如果类是个抽象类,只能用于被继承,如下,

"<<“和”>>"用来表示这个类是抽象类
2. 继承 — Inheritance
如果一个类是另外一个类的子类,那么它们的关系是继承,如下图,Tiger类和Lion类都继承于Animal类,箭头符号是白色空心三角形

3. 关联 — Association
老虎会捕食兔子,那么老虎和兔子之间是关联的,符号是一个单独的线

4. 聚合 — Aggregation
例如狮群(英文叫pride)是由一群狮子组成,但是狮子自己是可以独立存在的。那么Pride类和Lion类之间的关系就是聚合,符号是空心菱形箭头,

5. 组合 — Composition
和聚合有点类似,区别是其中的个体无法脱离主体存在,例如宾馆里有大厅和卫生间,而大厅和卫生间脱离了宾馆就不能单独存在,使用实心黑色菱形来表示,

6. Multiply
例如规定宾馆里只有一个大厅,至少一个卫生间,那么可以使用数字来指示,

其它方式还有如下,

三 总结
本文讲述了UML类图的几种常用关系,以后在编写代码前,可以尝试先画类图,然后再写程序,这样可以既见森林又见树木。
本文介绍了UML中的ClassDiagram,包括类图的基本元素和各种关系,如继承、关联、聚合、组合等,并推荐了Lucidchart作为绘制工具,详细阐述了如何配置和使用该工具创建UML类图。
2335

被折叠的 条评论
为什么被折叠?



