UML类图(一)

前言

最近在学习程杰老师的《大话设计模式》,以为很是不错,就作了一些学习笔记和总结。若是对设计模式很感兴趣的,能够直接阅读书籍,相信会有更多的收获。设计模式

本人小菜一枚,若是理解的不对的还请多多指教。数组

UML类图说明

类图URL

继承关系

如鸟类要继承动物类时,用空心三角形+实线指向动物类,以下函数

继承关系

实现接口

和普通类比,接口类第一层有个<< interface >>标识。当某个类要实现接口时,用空心三角形+虚线指向接口类,以下学习

实现接口

关联关系

当一个类“知道”另外一个类时,就能够用关联。关联关系用实线箭头表示。以下,企鹅知道天气的变化,则能够用实线箭头指向天气类。在代码中的具体表现为,企鹅类中会有个天气对象的成员属性,该天气类能够在构造函数里实例化。设计

依赖关系

依赖关系表示一个类须要引用另外一个类的对象。和关联关系不一样的是,在关联关系中被应用的对象以类的成员属性形式被引用,而依赖关系中被引用的对象一般是在类方法中以局部变量的形式引用。该局部变量能够是类方法的参数,也能够是在类方法中得到的一个实例。好比动物须要新陈代谢,而新陈代谢依赖与水和氧气。在代码中体现为,新陈代谢这个方法须要用到水和氧气这两个对象,但其它类方法不必定须要用到。3d

聚合关系

聚合关系表示一种弱的“拥有”关系。如A对象能够包含有B对象,但B对象不是A对象的一部分。如雁群和大雁就是一种聚合关系。聚合关系用空心菱形+实线箭头表示。在代码里,雁群会有一个数组,存放大雁对象。具体以下对象

组合关系(合成关系)

组合关系(也称合成关系)表示一种强的“拥有”关系,强调了部分和总体的关系。注意,部分和总体的生命周期是同样的。如鸟和翅膀就是一个组合关系。组合关系用实心菱形+实线箭头表示。在代码中,为了保证部分和总体的生命周期是一致的,因此在总体类的构造函数中必须初始化部分类实例。具体以下blog

总结

关联关系和依赖关系,组合关系和聚合关系这几个一般会比较难理清楚。能够经过如下几点来区分继承

  • 关联关系,聚合关系和组合关系都是经过类的成员属性来引用类对象,这三种关系在代码实现上基本相同,只是从业务场景上做区分。
  • 依赖关系是经过类方法的局部变量来引用类对象的,因此能够根据这点来判断是不是依赖关系。
  • 依赖关系和聚合关系能够看作是一种“弱”关系,因此在画图时都是用虚线和空心菱形。而关联关系和组合关系是一种“强”关系,因此连线时用实线和实心菱形。能够这么理解强弱关系,如相对类成员属性,局部变量影响更小,因此更弱些。