两张图示轻松看懂 UML 类图
一个类如何表示
- 第一格为类名
- 第二格为类中字段属性
- 格式:
权限 属性名:类型 [ = 默认值 ] - 权限:private、public 、protected、default,它们分别对应 -、+、#、~
- 格式:
- 第三格为类的方法
- 格式:
权限 方法名称(参数列表) [ : 返回类型] - 返回类型可选
- 格式:
类之间的关系

多看几次上图,对比如下简短说明,再结合实践,相信你很快就可以搞清楚类图了。
- 泛化(Generalization),在 Java 中叫继承
- 空心三角直线表示
- 实现(Realization)
- 空心三角虚线
- 依赖(Dependence)
- 箭头虚线表示
- 关联(Association)
- 当一个类“知道”另一个类时,可以用关联
- 聚合(Aggregation)
- 表示一种弱的“拥有”关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分
- 组合(Composition),也叫合成
- 是一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样
参考
- 《大话设计模式》——程杰
- 《设计模式之禅》——秦小波
- UML类图:https://www.jianshu.com/p/2828874af134
- UML工具推荐:https://www.cnblogs.com/xiaolinxi/p/3326451.html
推荐工具(排名不分先后)
- Acceleo
- Jude
- Microsoft Visio:
- 使用:新建一个 Microsoft Visio 文档,在“更多形状”中选择“软件和数据库”中的“软件”,就可以开始 UML 图的绘制了。
- PowerDesigner
- ProcessOn 是一款全新的在线做 UML 工具,主流 UML 图例都支持
两张图示轻松看懂 UML 类图的更多相关文章
- 看懂UML类图与时序图
看懂UML类图和时序图 这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图 ...
- 看懂UML类图和时序图
看懂UML类图和时序图 这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图 ...
- [转] 看懂UML类图和时序图
PS: 组合关系:实心,一个类A属于另一个类,或多个类,但是类A不能单独存在去使用,A一般是一种抽象的东西 聚合关系:空心,一个类A可以单独存在使用 不论组合聚合,A的方法都会被直接调用. 看懂UML ...
- [转]看懂UML类图
这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图所表达的含义和最终的代码 ...
- 看懂UML类图
这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图所表达的含义和最终的代码 ...
- (转)看懂UML类图
转自:http://design-patterns.readthedocs.io/zh_CN/latest/read_uml.html 这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关 ...
- (转)看懂UML类图和时序图
从一个示例开始 请看以下这个类图,类之间的关系是我们需要关注的: 车的类图结构为<<abstract>>,表示车是一个抽象类: 它有两个继承类:小汽车和自行车:它们之间的关系为 ...
- 【转】学习设计模式之前你必须掌握的-看懂UML类图
UML类图是UML(unified modeling language,标准建模语言)五种图示法中静态图的一种-用来描述系统中类的静态结构,不仅定义系统中的类,表示类之间的联系如关联.依赖.聚合等,也 ...
- 看懂UML类图笔记
在学习设计模式的时候,经常会遇到UML类图,所以就找了一些资料,做一些笔记. 从一个示例开始 下面这个类图,类之间的关系是我们需要关注的: 车的类图结构为<<abstract>> ...
随机推荐
- [MVVM Light]Messenger 的使用
原文:[MVVM Light]Messenger 的使用 当我们使用MVVM开发模式进行开发时,ViewModel之间的通信常常是很头疼的事情,好在MVVM Light提供了Messenger类可以轻 ...
- Ubuntu更改 resolv.conf 重启失效
更改Ubuntu的 resolv.conf的时候,重启的时候,经常又给重置了.google大法找到方法. sudo apt-get install resolvconf 原来Ubuntu的resol ...
- .net core config读取
最简单的方式 引用 Microsoft.Extensions.Configuration Microsoft.Extensions.Configuration.Json json文件 新建一个Conf ...
- EF相关报错
EF7无法找寻依赖问题解决方案 现象:使用EF7的过程中,任何"dnx . XXX"的都会报错,提示"cannot resolve dependencies for ta ...
- JS IE和火狐兼容性问题
<script type="text/javascript"> onload = function () { document.get ...
- 读取spring工程中resource的文件
Resource resource = new ClassPathResource("data.json"); // 读文件到字符串 String fileContent = Fi ...
- 图像Stride求取
原文:图像Stride求取 做这个日志也许你会觉得多余,但是,如果只给你了图像的流文件,和图像的Width,让你还原原始图像,那么你会发现一个问题,就是Stride未知的问题,这时就需要根据图像的Wi ...
- C# Excel导入Access
/// <summary> /// 导入 /// </summary> private void btn_In_Click(object sender, EventArgs e ...
- 微信小程序把玩(十七)input组件
原文:微信小程序把玩(十七)input组件 input输入框使用的频率也是比较高的...样式的话自己外面包裹个view自己定义.input属性也不是很多,有需要自己慢慢测,尝试 主要属性: wxml ...
- 程序异常崩溃后用windbg辅助调试解决的经验 以及 堆栈问题调试经验
1,程序异常崩溃后用windbg辅助调试解决的经验 状况:我的程序调用别人的库做 文件写入工作. 在这一过程中出现异常,程序崩溃. 经反复检查,认为自己的程序没有错,但无法判断在别人库里哪里有错. ...