UML类图关系(C++)

♀ 双向关联(Association)


CAssociation1和CAssociation2可以互相调用对方的公共成员函数和成员变量。代码触析:
[cpp]  view plain  copy
  1. class CAssociation1  
  2. {  
  3. private:  
  4.     CAssociation2* m_pAssociation2;  
  5. };  
  6.   
  7. class CAssociation2  
  8. {  
  9. private:  
  10.     CAssociation1* m_pAssociation1;  
  11. };  

♀ 单向关联(DirectedAssociation)

CDirectedAssociation1可以调用CDirectedAssociation2的公共成员函数和成员变量。代码触析:
[cpp]  view plain  copy
  1. class CDirectedAssociation1  
  2. {  
  3. private:  
  4.     CDirectedAssociation2* m_pDirectedAssociation2;  
  5. };  
  6.     
  7. class CDirectedAssociation2  
  8. {  
  9. };  

♀ 自身关联(DirectedAssociation)


自己引用自已。代码解析:
[cpp]  view plain  copy
  1. CSelfDirectedAssociation  
  2. {  
  3. private:  
  4.     CSelfDirectedAssociation* m_pSelf;  
  5. };  

♀ 聚合(Aggregation)


CAggrergator是聚合者,CAggregated是被聚合者。 被聚合者可以离开聚合者而独立存在 ,比如CDialog聚合CDialog,代码解析:
[cpp]  view plain  copy
  1. class CAggregator  
  2. {  
  3. private:  
  4.     CAggregated m_aggregated;  
  5. };  
  6.   
  7. class CAggregated  
  8. {  
  9. };  

♀ 组合(Composition)


CCombination是组合者,CCombined是被组合者。 被组合者不能离开组合者而独立存在 ,比如行组合单元格。代码解析:
[cpp]  view plain  copy
  1. class Combination  
  2. {  
  3. private:  
  4.     CCombined m_combined;  
  5. };  
  6.             
  7. class CCombined  
  8. {  
  9. };  

♀ 依赖(Dependency)


CDependent中功能的实现会用到CDepended中的功能。比如CDialog可以用CFileDialog完成文件保存功能。代码解析:
[cpp]  view plain  copy
  1. class CDependent  
  2. {  
  3. };  
  4.   
  5. class CDepended  
  6. {  
  7. };  
    ♂ 关联、聚合和组合、依赖的区别
  • 关联表示类之间的一种关系
  • 聚合和组合表示整体与部分的关系
  • 依赖是一种弱关联,表示一个类用到另一个类,但是和另一个类的关联又不是很明显

♀ 泛化-继承(Generalization)


CChild继承了CParent,代码解析:
[cpp]  view plain  copy
  1. class CParent  
  2. {  
  3. };  
  4.   
  5. class CChild:  
  6.     public CParent  
  7. {  
  8. };  

♀ 模板


代码解析:
[cpp]  view plain  copy
  1. template<typename T>  
  2. class CTemplate  
  3. {  
  4. };  

猜你喜欢

转载自blog.csdn.net/zm1_1zm/article/details/79526559