类之间的关系
之前的章节我们介绍了单个类有关的知识。在程序中如果出现多个类,那么它们之间会表现出一定的关系。粗略的看,类之间有以下几种关系:
- 使用关系
- 组合关系
- 继承关系
使用关系
使用关系是比较弱的关系,就是说A类使用了B类的功能(方法),在代码层面,A类可能以如下方式使用了B类:
B类出现在A类成员方法的参数里
class A { public: void method1(B b) { // ... } };
B类出现在A类成员方法里
class A { public: void method2() { B b; // ... } };
在UML即软件开发建模语言领域,使用关系被称为依赖(Dependency)关系,其UML类图表示为:
表示A类使用了B类,注意连线是虚线。
在类之间的UML图中,有时因为依赖关系是比较弱的关系,可能就不会表示出来了(绘制虚线)。(???待确认)
使用关系是两个类之间的临时关系。上述例子中只有A类对象调用了method1
或者method2
方法,才会用到B类。
这就区别于类之间另一种“更强”的关系,组合关系。
组合关系
组合关系指A类的一个成员是B类的对象,换句话说,A类对象的某一个属性保存在B类对象中。组合关系也可以称为包含关系。
代码层面
class A
{
private:
B b;
// ...
};
在UML中,组合关系被称为关联(Association)关系,其UML类图表示为: