前言
说到uml大家应该都不陌生,但是真正在工作中能动手画的同学应该不多吧,但是为了学习设计模式,我觉得学习过程中uml应该是很重要的一个东西,借这个机会顺便也巩固一下吧。
对象类型
接口
接口般由两层长方形表示。第一层是 << interface >> 和接口名,第二层是抽象方法。
抽象类
抽象类一般由三层长方形表示。第一层是类名,第二层是属性,第三层是方法。其中抽象方法和类名用斜体表示。
普通类
普通类一般由三层长方形表示。第一层是类名,第二层是属性,第三层是方法。
连线方式
实现
虚线和空心三角箭头表示,由实现类指向接口。
继承
实线和空心三角箭头表示,由子类指向父类。
依赖
虚线和单线箭头表示,单线箭头指向被依赖对象
关联
单向关联
实线和单线箭头表示,由关联者(Customer)指向被关联者(Address);换句话说,A是B的属性,则由B指向A。
双向关联
实线连接。
自关联
实线和单线箭头表示,由自己指向自己。
聚合
空心菱形和实线表示,空心菱形指向被聚合对象。
组合
空心菱形和实线表示,空心菱形指向被聚合对象。
备注
关联关系中关联和聚合、组合的区别个人理解是从语义角度区分,聚合和组合是特殊的关联关系。关联表示双方都是同一个等级,例如朋友关系;聚合的话有一个包含的意思,例如一群牛和牛的关系;组合和聚合的区别则是依赖的程度区别,聚合的话被聚合对象可以在宿主对象创建出来之前就被创建好,生命周期不受其限制,例如某个Component里面要聚合一个RabbitTemplate,Rabbittemplate可以在其创建之前被框架先创建出来。而组合则就是需要被宿主管理其生命周期。