类图

来源:互联网 发布:阿里云app图标 编辑:程序博客网 时间:2024/05/01 15:50

1. 类图实例

    下面这张UML图,比较形象的展示了各种类图关系:

    

2. 类与类之间的关系

   各种关系的强弱顺序:泛化=实现>组合>聚合>关联>依赖。

   (1) 泛化(Generalization)

        这是一种继承关系,它指定了子类如何拥有父类的所有特征和行为。

        

   (2) 实现(Realization)

        这是一种类与接口的关系,表示类是接口所有特征和行为的实现。

        

   (3) 关联(Association)

        这是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向关联可以有两个箭头或者没有箭头,单向关联有一个箭头。

        代码体现:成员变量。

        

         上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西,它不拥有学生。

   (4) 聚合(Aggregation)

        这是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。聚合关系式关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

         代码体现:成员变量。

        

   (5) 组合(Composition)

        这是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

        代码体现:成员变量。

        

     (6) 依赖(Dependency)

          这是一种使用关系,即一个实现需要另一个类的协助,所以要尽量不适用双向的互相依赖。

          代码体现:局部变量、方法的参数或者对静态方法的调用。

       


 

原创粉丝点击