UML类图的几种关系

Posted on By xqw

类之间的几种关系:

  • 继承(inheritance)
    代码中extends
  • 实现(realization)
    代码中implements
  • 关联(association)
    类之间有逻辑关系,一般包括了以下的依赖、聚合、组合关系
  • 依赖(dependency)
    A使用了B,通常表现为A的方法里传入B参数,一种最弱的关联关系
  • 聚合(aggregation)
    A类属性里有B类,B类脱离了A仍然存在,一种较弱的关联关系
  • 组合(composition)
    A类属性里有B类,B类脱离了A不存在,一种较强的关联关系

聚合组合关系:

组合和聚合的代码是一样的。具体如何区别,可能就只能用语义来区分了
问题域的语义上:组合中被组合类单独存在没有意义; 聚合中被聚合类在可以有单独存在的意义。   
生命期上:组合中必须要负责被组合类的生命期; 聚合中可不负责被聚合类的声明期,可以由外部程序来创建和消亡(可用赋值)。   

图形表示如下

来源:
UML类图
UML设计中的箭头详解