类之间的关系

类之间的关系有以下几种——

1、依赖关系

  • 依赖指得是类之间的调用关系,一个类调用了另一个类的方法。
  • 如果类A在它的方法中使用到了另一个类B的方法或者属性,但是这种使用关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A,这个时候类A依赖类B。
  • 举例:人在出远门的时候会依赖车的关系;喝水会依赖杯子的关系等,依赖总是单向的。

在UML类图设计中,依赖关系用类A指向类B的带箭头虚线表示,如下图所示:

                                                       

                                                                                                 依赖关系uml图

 

2、关联关系

  • 关联体现的是两个类之间语义级别的一种强依赖关系,比如我和我的朋友,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的。
  • 方向性(代表一个类是否拥有能够导航到另外一个类的知识,比如导师与学生之间的关系是属于双向关联;学生与课程之间的关系是属于单向关联)、多重性(有1对1、1对多、多对多关联关系)、聚集性(特指对象之间存在一种”整体与部分“的包含关系,可分为聚合组合两种具体类型)是描述关联关系的3个特征维度;

在UML类图设计中,关联关系用由关联类A指向被关联类B的带箭头实线表示,在关联的两端可以标注关联双方的角色和多重性标记,如下图所示:

                                                     

                             关联关系uml图 

 

3、继承关系

  • 继承关系指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口。

                                                                           

                              继承关系uml图

4、实现关系

  •  实现指的是一个类实现一个interface接口(可以是多个)的功能,在UML类图设计中,实现用一条带空心三角箭头的虚线表示,从类指向实现的接口。

                                                                              

                                                                                    实现关系uml图

 

5、聚合关系

  •  聚合是关联关系的一种特例,它体现的是整体与部分的关系,此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。
  • 在UML类图设计中,聚合关系以空心菱形加实线箭头表示。

                                                             

                                                                                              聚合关系uml图

 

6、组合关系

  •  组合也是关联关系的一种特例,它体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合。它同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束,比如人和人的大脑。表现在代码层面,和关联关系是一致的,只能从语义级别来区分。
  • 在UML类图设计中,组合关系以实心菱形加实线箭头表示。

                                                               

                                                                                               组合关系uml图

 

 

参考资料:http://www.imooc.com/article/3915

 

posted @ 2020-03-13 11:47  yeungYeung洋  阅读(1156)  评论(0)    收藏  举报