UML,进阶必备专业技能,看不懂UML就会看不懂那些优秀的资料。html
这里简单整理spa
泛化在Java中表现为继承(extends) ,is-a
的关系.net
实现在Android中表现为implements
接口,或者extends
抽象类code
用一条带箭头的虚线表示;箭头的指向为调用关系htm
简单来讲,类A用到了类B,就能够说A依赖于B对象
依赖关系是一种临时性的偶然性的关系,一般在运行期间产生,而且随着运行时的变化; 依赖关系也可能发生变化blog
代码中的表现:好比方法的入参,构造方法的参数继承
用一条直线表示接口
它描述不一样类的对象之间的结构关系;体现的是两个类、或者类与接口之间语义级别的一种强依赖关系ci
代码中的表现:关联对象一般是以成员变量的形式实现的
一条带空心菱形箭头的直线表示
聚合关系是关联关系的特例,它用于表示实体对象之间的关系,表示总体由部分构成的语义;是has-a
的关系;
例如一个部门由多个员工组成;
与组合关系不一样的是,总体和部分不是强依赖的,总体与部分之间是可分离的,即便总体不存在了,部分仍然存在;
例如, 部门撤销了,人员不会消失,他们依然存在
用一条带实心菱形箭头直线表示
组合关系是一种强依赖的特殊聚合关系,是contains-a
的关系,比聚合更强,也称为强聚合,若是总体不存在了,则部分也不存在
类能够拥有多个方法和属性
属性的表达方式:可见性 名称:类型 [ = 缺省值 ]
方法的表达方式:可见性 名称(参数列表) [ : 返回类型]
可见性:
+
public-
private#
protected~
package另外:UML图中的斜体表示抽象
释义:
ViewGroup
是一个View
,也是一个ViewParent
,依赖于MotionEvent
(在onTouch(MotionEvent)
等方法)
释义:
员工与工号相关联,员工聚合成部门,部门组成公司。
部门解散了员工依然存在(因此是聚合),而公司倒闭,部门也就不存在了(因此是组成)。