最近在看设计模式,发现每个模式都有自己的UML类图,之前没了解过。
UML 类图中的关系分为4种,继承,实现,依赖,关联;
1,继承
实线+空心箭头,箭头指向父类
泛化是父类和子类之间的关系。表示类与类之间的继承关系,接口之间的继承关系,或者对接口的实现关系。
注意:
1. 类图分为3部分,类名,属性,方法
2. <<..>>中的为注释信息
3. 修饰符 + 代表public,- 代表 private,#代表protected,什么也没有表示包可见
4. 带下划线的属性或方法是静态的
2,实现
指的是一个class类实现interface接口的功能。
3,依赖
依赖是一种使用关系,用于两个独立的对象。
在Java中,类A 中使用了类B,其中类 B 是作为A 的方法参数,方法中的局部变量,或者静态方法调用 。
4,关联
体现两个类之间语义级别的强依赖关系。
表现为类A 中使用了类B,其中类B 是做为类 A 的成员变量。(与上面依赖关系对比)
在UML图中可以很明显的看出依赖和关联的关系。关联中使用的类是出现在第二层的。
public class Son{
//关联关系中作为成员变量的类一般会在类中赋值
Father father = new Father();
public void getGift(){
System.out.println(“从”+father.getName()+”获得礼物”);
}
}
又包括两种特殊的:
4.1 聚合
是关联关系的一种特例,是整体与部分的关系。关联关系中的对象时相互独立的,聚合关系对象之间存在包容关系。
4.2 组合
组合是聚合的一种形式,它具有更强的拥有关系,强调整体与部分的生命周期 是一致的。
聚合与组合的区别:
一个雁群中,每个大雁与雁群的关系是聚合,每只大雁都有一对翅膀,大雁与翅膀的关系就是组合。大雁不会因为它们的群主将雁群解散而无法生存 而雁翅就无法脱离大雁而单独生存——组合关系的类具有相同的生命周期
参考:
http://blog.csdn.net/zhengzhb/article/details/7331369
http://gaojiewyh.iteye.com/blog/407013
http://blog.csdn.net/sfdev/article/details/3906243
http://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html#top