Rose与UML类图关系与生成代码剖析
2012-11-09 22:03
316 查看
(转载)UML类图关系全面剖析
类之间的关系:
1、关联:类A有类B的指针或者引用作为其成员。类A可以使用类B公用的方法和属性
2、聚合/组合:类A中有类B作为其成员,类B可以独立存在成为聚合。类B不能独立促在成为组合
3、依赖:类A要使用类B中的一些方法,类A的头文件中包含类B的头文件。
4、泛化:继承关系
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、关联:类A有类B的指针或者引用作为其成员。类A可以使用类B公用的方法和属性
2、聚合/组合:类A中有类B作为其成员,类B可以独立存在成为聚合。类B不能独立促在成为组合
3、依赖:类A要使用类B中的一些方法,类A的头文件中包含类B的头文件。
4、泛化:继承关系
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类图的这些关系,也值得了。:)
相关文章推荐
- Rose与UML类图关系与生成代码剖析
- Rose与UML类图关系与生成代码剖析
- Rose与UML类图关系与生成代码剖析
- UML建模详解(9)—Rose将C++代码自动生成UML类图详解
- UML类图关系全面剖析和C++代码表现
- UML类图关系全面剖析和C++代码表现(转载)
- UML类图关系全面剖析和C++代码表现(转载)
- C编译器剖析_5.1 中间代码生成及优化_简介
- UML类图关系全面剖析
- C编译器剖析_5.2.1 中间代码生成及优化_布尔表达式的翻译
- UML类图关系全面剖析
- UML类图关系全面剖析-转载
- UML类图关系全面剖析
- 转 Rose 如何生成Ansi C++ 代码
- UML类图--类与类关系的UML图与代码表现
- UML类图关系全面剖析
- UML类图关系全面剖析
- [转]UML类图关系全面剖析
- C编译器剖析_5.4.1 中间代码生成与优化_删除无用的临时变量和优化跳转目标
- C编译器剖析_5.4.2 中间代码生成及优化_基本块的合并