前言

UML类图形象反映系统类之间的关系,大家非常常用。小弟不才,偶尔使用,往往每次使用都得查询各种关系的表示方式。终于,这次认真看了几遍,打算记起来。

注意

记忆方法只是本人联想,用于加强记忆。与该表示方式的来源没有半点关系。

元素

类和接口

  • +表示public,-表示private。正代表公开,负代表私密,很正常。

类之间的各种关系

泛化、实现

  • 泛化(可以看成继承)和实现都用三角形来表示。
  • 实现,由“无实现”到“有实现”。没东西是不是比较虚啊,所以用的是虚线。
  • 泛化,原来就有实现,只不过在此基础上扩展。本身就很强,用实线。
  • 在Java中的表现,泛化,就是继承;实现,就是实现嘛,被实现的可以是接口,或抽象类。

聚合、组合

  • 聚合、组合都是用菱形表示。他们都是多个对象聚集而成,所以体积比较大,你看菱形是不是比三角形、箭头要大一点。
  • 两者都是用实线。
  • 聚合,是聚集起来合成在一起的。比如人员聚集起来合成一个团队,如果团队解散了,但人员还存在。是弱依赖关系,所以用空心的菱形。
  • 组合,是(结构)组成合成在一起的。比如树木组成森林,如果森林消失了,树木也消失了。是强依赖关系,所以用实心的菱形。

关联、依赖

  • 关联、依赖都是由箭头表示(除了箭头,也想不到其他更合适的了)。
  • 关联,是静态的、非运行时的关系(什么是非运行时的关系?用Java代码来说,A关联B,那么B是A的一个属性,顿时领悟了吧)。那么稳定的关系,当然用实线了。
  • 依赖,是临时的、运行时的关系(用Java代码来说,就是参数嘛),临时的关系,用虚线表示也合理。

参考的资料

【UML】如何记忆UML类图的画法的更多相关文章

  1. UML学习笔记:类图

    UML学习笔记:类图 有些问题,不去解决,就永远都是问题! 类图 类图(Class Diagrame)是描述类.接口以及它们之间关系的图,用来显示系统中各个类的静态结构. 类图包含2种元素:类.接口, ...

  2. UML基础系列:类图

    类图描述系统中类的静态结构,它不仅定义系统中的类,描述类之间的联系,如关联.依赖.聚合等,还包括类的内部结构(类的属性和操作).类图描述的是静态关系,在系统的整个生命周期中都是有效的.对象图是类图的实 ...

  3. Uml 建模 一(类图建模和startuml的使用)

    本文将分三个部分介绍Uml建模:Uml建模的作用.类图.startuml的使用 Uml的作用 本文以java为例介绍Uml,在当前的软件开发中大多数使用面向对象开发(OO),面向对象的就是将现实世界中 ...

  4. UML类图基本画法

    转自:http://www.cnblogs.com/import-this/p/5330501.html 1. 类 类包括属性方法 下图的生命就是属性 代谢就是方法 2.基本关系 a.泛化(Gener ...

  5. UML类图的画法

    http://blog.csdn.net/kevin_darkelf/article/details/11371353

  6. UML类图画法及其之间的几种关系(转)

    UML类图画法及其之间的几种关系 最近做重构项目,需要画一下类图,发现类图的画法及其之间的几种关系已经淡忘了很多,所以整理总结一下,有问题的地方大家可以一起讨论下. 文章目录如下: 类图画法 类之间的 ...

  7. UML类图画法及其之间的几种关系

    最近做重构项目,需要画一下类图,发现类图的画法及其之间的几种关系已经淡忘了很多,所以整理总结一下,有问题的地方大家可以一起讨论下. 文章目录如下: 类图画法 类之间的几种关系:泛化(Generaliz ...

  8. [UML]UML系列——类图Class

    相关文章       [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) 一.类图的概念及组成 1.类图的概念 类图是描述类.接 ...

  9. (转)面向对象——UML类图设计

    背景:一直以来,对UMl类图的画法不甚理解,但是随着学习的深入,发现熟练掌握UML类图,能够更好理解代码间的逻辑性,而这也是程序设计的基础所在,所以很有必要把UML好好掌握. UML类图新手入门级介绍 ...

随机推荐

  1. AppStore审核

    应用被拒分为两种:Binary Rejected 和 Metadata Rejected.前者需要重新上传应用并且重新排队,后者只需要修改信息,不需要重新上传应用. 1.应用内包含检查更新功能 iOS ...

  2. 【转】jquery iframe取得元素与自适应高度

    今天没事来总结一下iframe在jquery中怎么操作的,下面我来给各位介绍jquery 获取iframe子/父页面的元素及iframe在jquery高度自适应实现方法,各位朋友可参考. jquery ...

  3. Linux 安装pip

    参考:为Linux 系统安装pip pip: "A tool for installing and managing Python packages.",也就是说pip是pytho ...

  4. TP框架知识点

  5. ArcGIS Server 创建站点失败

    前期解决方案中部分解决方法汇总:①安装Server时创建的ArcGIS Server Account (操作系统级别用户,默认用户名arcgis)对创建站点时新建的站点目录arcgisserver文件 ...

  6. Maven-005-部署构件至 nexus 私服

    nexus 私服仓库中宿主仓库主要用于储存装置内部的或一些无法从公共仓库获取的第三方构件,供项目组的人员使用.日常开发中,可将各版本构件直接部署到 Nexus 中对应策略的宿主仓库中.上篇文章中讲述了 ...

  7. 简单理解php的socket编程

    php的socket编程算是比较难以理解的东西吧,不过,我们只要理解socket几个函数之间的关系,以及它们所扮演的角色,那么理解起来应该不是很难了,在笔者看来,socket编程,其实就是建立一个网络 ...

  8. GIS简单计算Helper类

    using System; using ESRI.ArcGIS.Client.Geometry; namespace GISProject.Extensions { /// <summary&g ...

  9. MC, MCMC, Gibbs采样 原理&实现(in R)

    本文用讲一下指定分布的随机抽样方法:MC(Monte Carlo), MC(Markov Chain), MCMC(Markov Chain Monte Carlo)的基本原理,并用R语言实现了几个例 ...

  10. fasta文件拆分与合并

    Linux中fasta文件的拆分与合并 FASTA文件的拆分: (1)如果从一个文件a提取第11至20个序列存到另一个文件b: awk -v RS='>' 'NR>1{i++}i>= ...