UML——关系连连看

来源:互联网 发布:淘宝怎么买烟怎么搜 编辑:程序博客网 时间:2024/05/17 13:46
对UML中图的关系进行总结和理解,以便后边更好的画图 进行铺垫,进而对后面的9种图用一个更深入的理解。

1、关系

(1)依赖关系(Dependency)

  A类依赖于B类也就是说,A类会用到B类。B类的变化会影响到A类。依赖的关系是具有偶然性的、临时性的、非常弱的。UML中用带箭头的虚线表示。

注意:箭头指向被依赖方

(2)泛化关系(Generalization)

        泛化关系可以理解为继承关系,描述了父与子的关系。子类继承父类的方法和属性,还可以增加它自己的新功能。继承可以分为单重继承和多重继承,单重继承是一个或者多个子类继承一个父类(如下图);多重继承是一个子类可以继承多个父类(如下图)。UML中用带空心箭头的实现表示。

                      

注意:画继承关系的时候,箭头指向父类。  

3)实现关系(Realize)

         实现关系是类实现接口的一种关系。用空心箭头和虚线表示实现关系。箭头指向定义约定的类。

               

(4)关联关系(Association)

        关联关系为类之间的通信提供了一种方式,它是所有关系中最通用,语义最弱的一个。关联关系中有双向关联,单向关联,反身关系。

       双向关联是两个类彼此知道彼此之间的联系,除非你限定一些其它类型的关联。如下,斗争和平面之间就是双向关联。

        单向关联是两个类是相关的,但是只有一个类知道关系的存在。如下图,就只有类A知道关系的存在。

       反身关联是类自己和自己的关系,同一个类最中的多个对象可以有许多合作方式。比如一个公司有很多部门,部门和部门之间就是反身关联。

(5)聚合(Aggregation)

        聚合关系是关联关系的特例。表示一种整体——部分的关系。类A和类B是聚合关系,则类A和类B是可以独立存在的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。UML中用带有空心菱形的实现表示聚合关系。空心菱形指向整体部分。比如公司和员工的关系,公司是一个整体,一个公司可以有一个或者多个员工,一个员工也可以属于一个或者多个公司,如下图。

(6)组合(Composition)

        组合关系是聚合的变种,表示更强的组合关系。同样体现整体——部分的关系,这时整体和部分是不可分离的,整体生命周期结束也就意味着部分的生命周期结束,组合关系不能共享。一旦整体部分不存在,部分对象也将不存在。UML中用带实心菱形的实现表示,菱形头指向整体部分。

比如书和页的关系,一本书由多张页组成,一旦书没有了,页也就不存在了。如下图。

2、区别

          

        依赖关系(Dependency)最弱,而关联(Association),聚合(Aggregation),组合(Composition)表示的关系依次增强。

       

       换而言之,关联,聚合,组合都是依赖关系的一种,聚合表明对象之间的整体——部分关系的关联,组合是表明整体——部分之间有相同生命周期关系的聚合。

      

      关联和依赖的关系用一句话概括下来就是,依赖描述了对象之间的调用关系,而关联描述了对象之间的结构关系。

      

       关联和聚合的主要区别主要在语义上,关联的两个对象之间一般是平等的,例如你是我的朋友,聚合关系一般是不平等的。关联和聚合是视问题域而定的。例如轮胎,在汽车领域里,一定要组合在汽车上才有意义,但是在卖轮胎的店铺里也是有意义的。

      以上是我对几种关系的理解,欢迎大家指正。

 

转载自:http://blog.csdn.net/liutengteng130/article/details/8228571

原创粉丝点击