美文网首页C++复习
UML类图之间的关系:依赖、关联、聚合、组合等

UML类图之间的关系:依赖、关联、聚合、组合等

作者: 凉拌姨妈好吃 | 来源:发表于2018-06-04 23:47 被阅读12次

    1. UML类图

    类图用于描述系统所包含的类和类之间的相互关系

    1.1 类的图示
    类图
    类的属性及其表示
    • private使用 -
    • protected使用 #
    • public使用 +
    • package使用 ~
    1.2 接口

    正好复习一下接口的特性:

    1. 接口不能被实例化
    2. 实现类可以实现多个接口
    3. 实现类必须实现接口所有方法(抽象类除外)
    4. 接口中的常量都是静态常量
    接口

    2. 类间关系

    2.1 依赖关系-Dependence

    假设A类的改变影响了B类,那么B类就依赖于A类
    特定事物改变可能影响到使用该事物的其他事物

    什么时候用到依赖关系?

    • A类实例作为B类方法的参数
    • A类实例作为B类方法的局部变量
    • B类调用A类的静态方法

    依赖关系的UML图示
    箭头由依赖方指向被依赖方,如下就是Driver依赖于Car类。

    依赖关系图示
    2.2 关联关系-Dependence

    一个类对象与另一个类对象有联系,在C++/Java等实现中,通常将一个类的对象作为另一个类的属性。

    2.2.1 双向关联

    默认情况下,关联关系都是双向的。
    exp:数据库管理员管理数据库,某些数据库被特定管理员管理


    双向关联

    exp:用户对应对个订单,订单对应特定用户

    2.2.2 单向关联

    一方持有另外一方的实例,如学生对应成绩表、用户表的地址对应地址表


    单向关联
    2.2.3 自关联

    类的属性类型为类本身,如链表、树结构


    自关联
    2.2.4 多重性关联-Multiplicity

    两对象在数量上对应的关系,如一对多、多对一、多对多等


    多重性关联
    2.2 聚合关系

    表示整体与部分的关系,部分可以脱离整体存在,如图书馆和图书。
    通常都是定义了一个整体,然后去思考它的内部结构,就会发现一些成员类,这些成员类与整体的关系就是聚合关系。

    从代码实现角度,部分对象不由整体对象创建,而是通过整体对象的带参构造函数或者set方法传入。

    表现方式:整体指向部分,空心菱形靠近整体

    聚合关系
    2.3 组合关系

    也是整体与部分之间的关系,但是整体会影响到部分的生存周期,只要整体对象不存在了,部分对象也随之消亡。如,公司和部门、猫和猫的腿

    表现形式:整体指向部分,实心菱形靠近整体

    组合关系
    2.4 泛化关系/继承关系

    用于描述父类和子类之间的关系,如Teacher继承People等
    表现形式:带有空心三角形的实线指向父类

    泛化关系
    2.5 实现关系

    接口与实现接口的类之间的关系。
    表现形式:带空心三角形的虚线指向接口

    实现关系

    参考资料:
    UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现
    UML(一) 类图详解

    相关文章

      网友评论

        本文标题:UML类图之间的关系:依赖、关联、聚合、组合等

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