前言

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

注意

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

元素

类和接口

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

类之间的各种关系

泛化、实现

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

聚合、组合

  • 聚合、组合都是用​​菱形​​表示。他们都是多个对象聚集而成,所以体积比较大,你看菱形是不是比三角形、箭头要大一点。
  • 两者都是用实线。
  • 聚合,是聚集起来合成在一起的。比如人员聚集起来合成一个团队,如果团队解散了,但人员还存在。是​​弱依赖​​关系,所以用​​空心的菱形​​。
  • 组合,是(结构)组成合成在一起的。比如商品条目、配送地址信息、付款信息组成订单,如果订单消失了,付款信息也消失了(生存周期一致)。是强依赖关系,所以用​​实心的菱形​​。
    【UML】如何记忆UML类图的画法_类图_02

关联、依赖

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