原文链接:https://www.cnblogs.com/xsyblogs/p/3404202.html

我们通过一个示例来了解UML类图的基本语法结构。画UML类图其实有专业的工具,像常用的Visio等,都是很好的工具,楼主这里由于时间关系就不用专业的工具,如有欠缺之处,欢迎广大网友指出。图片比较大,建议大家用QQ影响查看器打开,它可以实现对图片缩放的时候不失真。

通过以上图片,我们可以看到UML中常用的表示方法。下面将图像拆开来细说一下。

首先看动物那个矩形框,它代表来了一个类(Class)。类图分3层,第一层表示类的名称,如果是抽象类,则用斜体表示。第二层是类的特性,通常表示字段和属性。第三层是类的操作,通常是行为和方法。注意第二层和第三层前面的符号,有“+”,“—”,还可能有“#”,这代表什么含义呢?“+”代表public,“—”代表private,而“#”则表示protected。

再看飞翔这个矩形框,它表示一个接口图,和类图的区别就是顶部有interface字样,第一行表示接口名称,第二行表示接口方法。接口还有另一种表示方法——棒棒糖表示法。图中唐老鸭实现讲人话的接口。

类和类之间的继承关系,用实线+空心三角形表示,如下图。

类和接口之间的实现关系用虚线+空心三角形表示,如下图,表示实现接口。

关联用实线箭头表示。

聚合表示一种弱的“拥有”关系,体现的是A对象可以包含B对象,但B对象不一定是A对象的一部分。聚合用空心的菱形+实线箭头来表示。

合成(也说组合)是一种强的拥有关系,体现了严格的整体和部分的关系,部分和整体的生命周期一样。示例中鸟和其翅膀就是组合关系,因为他们是部分和整体的关系,并且翅膀和鸟的生命周期一样。

另外还有依赖关系,就像动物依赖于空气和水一样。依赖关系用虚线箭头来表示。

最新文章

  1. 征途 bzoj 4518
  2. Windows内核开发中如何区分文件对象究竟是文件还是文件夹?
  3. Web 前端开发人员和设计师必读精华文章【系列二十六】
  4. ArrayList如何保证线程安全
  5. 让Web API支持$format参数的方法
  6. EasyUI form ajax submit到MVC后,在IE下提示下载内容的解决办法
  7. 实用lsof常用命令行
  8. 【转】Linux內核驅動之GPIO子系統(一)GPIO的使用 _蝸牛
  9. DWZ在APS.NET WebForm中的使用(一)
  10. 添加第三方类库造成的Undefined symbols for architecture i386:编译错误
  11. iOS开发之Runtime常用示例总结
  12. winform无边框窗口拖动
  13. [编织消息框架][netty源码分析]10 ByteBuf 与 ByteBuffer
  14. Visual Studio 201~ Code 格式检查
  15. 最短路算法模板--SPFA
  16. Bullet物理引擎的安装与使用
  17. 2019.02.06 bzoj2187: fraction(类欧几里得)
  18. [Android Pro] Android 必知必会-使用 supportV4 的 RoundedBitmapDrawable 实现圆角
  19. Java中String两种不同创建方式的区别及intern的用法
  20. 【BZOJ1475】方格取数 [最小割]

热门文章

  1. Checker Challenge跳棋的挑战(n皇后问题)
  2. FPGA---ucf文件语法
  3. POJ1308
  4. java5 CyclicBarrier同步工具
  5. Logos
  6. 分布式文件系统MFS(moosefs)实现存储共享
  7. Chrome,firefox,ie等浏览器空格 宽度不一样
  8. 反射01 Class类的使用、动态加载类、类类型说明、获取类的信息
  9. SQL SERVER 2008权限配置
  10. Makefile 编写规则 - 1