UML类图关系全面剖析(转)
2008-01-09 09:41
218 查看
本文随便转载,请保留出处:http://blog.csdn.net/dylgsy/
UML的类图关系分为: 关联、聚合/组合、依赖、泛化(继承)。而其中关联又分为双向关联、单向关联、自身关联;下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里。
1、关联
class C1
class C2
class C3
class C4
class C14
class C9
class C10
class C7
class C8
// C5.h
#include "C6.h"
class C5
// C6.h
#include "C5.h"
class C6
虽然ROSE不生成属性,但在形式上一般是A中的某个方法把B的对象作为参数使用(假设A依赖于B)。如下:
#include "B.h"
class A
#include "C11.h"
class C12 : public C11
template<int>
class C13
这里再说一下重复度,其实看完了上面的描述之后,我们应该清楚了各个关系间的关系以及具体对应到代码是怎么样的,所谓的重复度,也只不过是上面的扩展,例如A和B有着“1对多”的重复度,那在A中就有一个列表,保存着B对象的N个引用,就是这样而已。
好了,到这里,已经把上面的类图关系说完了,希望你能有所收获了,我也费了不少工夫啊(画图、生成代码、截图、写到BLOG上,唉,一头大汗)。不过如果能让你彻底理解UML类图的这些关系,也值得了。:)
补注1:
关联关系(association)描述了给定类的对象个体之间的语义连接。关联提供了不同交互对象间的连接。剩余的关系则相关于分类本身的描述,而非它们的实例。
摘自:The Unified Modeling Language Reference Manual
By James Rumbaugh, Ivar Jacobson, Grady Booch
Interpreted by Adams Wang
所以说,如果没有对象,那么就没有关联关系。在程序中,如果只是调用了类的静态方法,而没有产生这个类的实例,那么这两个类的对象之间就没有关联关系。但是这两个类之间是有依赖关系的。
UML的类图关系分为: 关联、聚合/组合、依赖、泛化(继承)。而其中关联又分为双向关联、单向关联、自身关联;下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里。
1、关联
class C1
class C2
class C3
class C4
class C14
class C9
class C10
class C7
class C8
// C5.h
#include "C6.h"
class C5
// C6.h
#include "C5.h"
class C6
虽然ROSE不生成属性,但在形式上一般是A中的某个方法把B的对象作为参数使用(假设A依赖于B)。如下:
#include "B.h"
class A
#include "C11.h"
class C12 : public C11
template<int>
class C13
这里再说一下重复度,其实看完了上面的描述之后,我们应该清楚了各个关系间的关系以及具体对应到代码是怎么样的,所谓的重复度,也只不过是上面的扩展,例如A和B有着“1对多”的重复度,那在A中就有一个列表,保存着B对象的N个引用,就是这样而已。
好了,到这里,已经把上面的类图关系说完了,希望你能有所收获了,我也费了不少工夫啊(画图、生成代码、截图、写到BLOG上,唉,一头大汗)。不过如果能让你彻底理解UML类图的这些关系,也值得了。:)
补注1:
关联关系(association)描述了给定类的对象个体之间的语义连接。关联提供了不同交互对象间的连接。剩余的关系则相关于分类本身的描述,而非它们的实例。
摘自:The Unified Modeling Language Reference Manual
By James Rumbaugh, Ivar Jacobson, Grady Booch
Interpreted by Adams Wang
所以说,如果没有对象,那么就没有关联关系。在程序中,如果只是调用了类的静态方法,而没有产生这个类的实例,那么这两个类的对象之间就没有关联关系。但是这两个类之间是有依赖关系的。