关于startUML中各种连线这间的关系

    在画UML类图的时候,会通常用各种连线来表示类与类,类与接口直接的关系,startUML中提供了各种关系的箭头,本篇文章就是介绍这些关系的。sartaUML中提供的关系有如下几种:

关于startUML中各种连线这间的关系

------------------------------------------------------------------------------------------------------------------------------------------------------------------

               关于startUML中各种连线这间的关系

以上就是一个实际的关系类图来依次介绍这几种关系的情形:

Assocaition和DirectedAssocaition:
      关联关系:关联关系是用一条直线表示的,它描述不同类的对象之间的结构关系,它是一种静态关系,通常与运行状态无关,一般由常识等因素决定的。它是一种“强联“的关系.关联关系默认不强调方向,表示对象间相互知道,如果特别强调方向,则使用箭头。

       例子:
a.乘车人与车票
b.学生和学校

关于startUML中各种连线这间的关系

          如上例子所示:学校和学生互相知道,学生知道车票,车票不知道学生,都是强关系。

 

Aggregation:
聚合关系:聚合关系是用一条带空心菱形的直线表示,用于表示实体对象之间的关系,表示整体由部分构成。

        例子:

                部门和员工

关于startUML中各种连线这间的关系

           如上例子所示:部门是由员工组成的,但不是强依赖关系,及部门不存在了,员工可以存在。

 

Composition:
组合关系:用一条带实心菱形箭头直线表示。菱形所在的一端代表主体,表示前者组成了主体,或者主体由其他的组成。        

        例子:

                部门和公司

关于startUML中各种连线这间的关系

        如上例子所示:公司是由部门组成的,但是是抢依赖关系,公司不存在了,则部门存在。

 

Generalization:
        泛化关系:类的继承is-a关系,两个对象之间如果可以用is-a来表示,就是继承关系。泛化关系用一条带空心箭头的直接表示。

       例子:
              自行车和车

              猫和动物

 

关于startUML中各种连线这间的关系

 

            如上例子所示:自行车继承车,猫继承动物,在代码中泛化关系表示类继承抽象类。

 

Dependency:
       依赖关系:用一套带有箭头的虚线表示,带箭头的一端表示被依赖,他描述一个对象在运行期间会用到另一个对象。与关联关系不同的是,它是一种临时性的关系,通常在运行期间产生,并且随着运行时的变化,依赖关系也可能发生变化。

       例子:

              学生和自习车

关于startUML中各种连线这间的关系

 

              如上例子所示:学生依赖自行车,在最终代码中,依赖关系体现为类构造方法及类方法的传入参数,箭头的指向为调用关系。

 



Realization:
       实现关系:用一条带空心箭头的虚线表示。

       例子:

              图纸和房子

关于startUML中各种连线这间的关系

         如上例子所示:房子实现了图纸这个接口,在最终代码中,实现体系为类实现某个接口。