♀ 双向关联(Association)
class CAssociation1
{
private:
CAssociation2* m_pAssociation2;
};
class CAssociation2
{
private:
CAssociation1* m_pAssociation1;
};
♀ 单向关联(DirectedAssociation)
CDirectedAssociation1可以调用CDirectedAssociation2的公共成员函数和成员变量。代码触析:class CDirectedAssociation1
{
private:
CDirectedAssociation2* m_pDirectedAssociation2;
};
class CDirectedAssociation2
{
};
♀ 自身关联(DirectedAssociation)
CSelfDirectedAssociation
{
private:
CSelfDirectedAssociation* m_pSelf;
};
♀ 聚合(Aggregation)
class CAggregator
{
private:
CAggregated m_aggregated;
};
class CAggregated
{
};
♀ 组合(Composition)
class Combination
{
private:
CCombined m_combined;
};
class CCombined
{
};
♀ 依赖(Dependency)
class CDependent
{
};
class CDepended
{
};
♂ 关联、聚合和组合、依赖的区别
- 关联表示类之间的一种关系
- 聚合和组合表示整体与部分的关系
- 依赖是一种弱关联,表示一个类用到另一个类,但是和另一个类的关联又不是很明显
♀ 泛化-继承(Generalization)
class CParent
{
};
class CChild:
public CParent
{
};
♀ 模板
template<typename T>
class CTemplate
{
};