美文网首页
如何看懂UML类图

如何看懂UML类图

作者: 小碗碗碗碗 | 来源:发表于2020-04-13 14:50 被阅读0次

    一、定义

    Unified Modeling Language (UML):统一建模语言,类图是使用频率最高的UML图之一。

    二、类的UML图示

    定义一个QtiPlayerComponent类

    类一般由三部分组成:

    1、类名

    2、属性(Attributes):可见性  名称:类型  [ = 缺省值 ]

    ① 可见性:public(+) 、private(-) 、protected(#) 

    ② 名称:变量名/方法名

    ③ 类型:属性的数据类型,可以是基本数据类型,也可以是用户自定义类型

    ④ 缺省值:可选项,即属性的初始值

    3、 方法(Operations):可见性  名称(参数列表)  [ :返回类型]

    ① 参数列表:表示方法的参数,其语法与属性的定义相似,参数个数是任意的,多个参数之间用逗号隔开

    ② 返回类型:可选项,表示方法的返回值类型,可以是基本数据类型或用户自定义类型,还可以是空类型(void)。如果是构造方法,则无返回类型

    三、类与类之间的关系

    1、关联(Association)

    表示一个类的属性保存了对另一个类的一个实例(或多个实例)的引用,当一个类知道另一个类时,可以用关联。

    关联关系用实线箭头来表示。

    关联关系有四种:双向关联、单向关联、自关联、多重性关联

    ① 单向关联:用一个单向箭头的直线表示

    ② 双向关联:用一个双向箭头或不带箭头的直线表示

    ③ 自关联:用一个单向箭头的直线表示,单向箭头指向自己

    ④ 多重性关联:在多重性关系中,可以直接在关联直线上增加一个数字,表示与之对应的另一个类的对象的个数

    汽车和司机:一辆汽车对应特定的司机,一个司机也可以开多辆车  

    注:组合、聚合也属于关联关系,只是关联关系的类间关系比其他两种要弱。

    2、聚合(Aggregation)

    表示类之间整体与部分的关系,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在

    聚合关系用带空心菱形的直线表示。

    公交车司机和工衣、工帽:工衣、工帽可以穿在别的司机身上,公交司机也可以穿别的工衣、工帽

    聚合表示一种弱拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。

    3、组合(Composition)

    表示类之间整体与部分的关系,但是整体与部分不可分开。整体和部分有一致的生存期,一旦整体对象不存在,部分对象也将不存在,是同生共死的关系。

    组合关系用带实心菱形的直线表示。

    人由头部和身体组成,两者不可分割,共同存在

    组合关系是一种强拥有关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。

    4、依赖(Dependence)

    依赖关系是一种“使用”关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。假设A类的变化引起了B类的变化,则说明B类依赖于A类

    依赖关系用带箭头的虚线表示。

    汽车依赖汽油,如果没有汽油,汽车将无法行驶

    大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。

    5、继承(即泛化,Generalization)

    表示父类与子类之间的关系,父类又称作基类,子类又称作派生类。继承关系中,子类继承父类的所有的功能,包括父类所具有的属性、方法,同时子类还包括额外的信息。

    继承关系用带空心三角形的直线来表示。

    公交车、出租车和小轿车都是汽车,他们都有名称,并且都能在路上行驶

    6、实现(Implementation)

    表示接口和实现类的关系,接口(包括抽象类)是方法的集合。

    在实现关系中,类实现了接口,类中的方法实现了接口声明的所有方法。

    实现关系用带空心三角形的虚线来表示。

    汽车和轮船都是交通工具,而交通工具只是一个可移动工具的抽象概念,船和车实现了具体移动的功能

    注:交通工具接口Vehicle,包含一个抽象操作run()。在类Ship和类Car中都实现了该run()操作,不过具体的实现细节将会不一样(多态)。

    四、总结

    这六种类关系中,组合、聚合和关联的代码结构一样,可以从关系的强弱来理解。

    各类关系从强到弱依次是:继承 > 实现 > 组合 > 聚合 > 关联 > 依赖


    推荐绘图工具:ProcessOn,可在线画uml,UML类图等,支持思维导图,流程图绘制

    相关文章

      网友评论

          本文标题:如何看懂UML类图

          本文链接:https://www.haomeiwen.com/subject/equgmhtx.html