1. 泛化(Generalization)
在c++中对应继承,如B是A的泛化,在C++中表现为:
class B : public A
{
public:
B() {}
virtual ~B() {
}
}
</pre><pre>
2.
实现(Realization)
在C++中对应,对应是虚拟函数的概念,如B实现了A,是实现了A中虚拟函数的具体功能(接口),在C++中表现:
class A
{
public:
A() {}
virtual ~A() {}
virtual void fun(int x,int y) =0;
};
class B : public A
{
public:
B() {}
virtual ~B() {}
virtual void fun(int x,int y);
}
3.关联(Associate)
是一种伙伴关系,
如B关联了A, B知道A的属性与方法(B可以使用A的属性与方法),
在C++中对应 方法的参数:
class B {
public:
B() {}
virtual ~B() {}
void fun(A *m_A);
}
4.聚合关系(Aggregation)
是整体与个体的关系,是一种联合国样式的组织,是一种弱包含,每个个体都可以独立存在。在C++中对应的属性生命周期的概念聚合关系中,个体的生命周期不归整体掌控。
class B
{
public:
B() {}
virtual ~B() {}
A *m_A;
}
在具体实现中,A的个体在B之外生成,在适当的时候把个体以指针的形式传递给B即可。
5.组合关系(Composition)
是整体与个体的关系,是一种同生共死的组织,是一种强包含,每个个体都不可以独立存在。在C++中对应的属性生命周期的概念组合关系中,个体的生命周期归整体掌控。
class B
{
public:
B() {}
virtual ~B() {}
A m_A;
}
在具体实现中也可以用指针,这时候要注意B要掌管A的生死即可