美文网首页
浅谈UML类图

浅谈UML类图

作者: sharp367 | 来源:发表于2020-06-09 22:27 被阅读0次

    什么UML类图

    UML类图用于描述系统中类(对象)自身的组成和类(对象)之间的各自静态关系

    先上干货,让大家有个整体的认识

    image.png

    类之间的关系

    在UML类图中,常见的有以下几种关系: 依赖(Dependency)、泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition)

    类图---依赖(Dependency)

    类中用到了对方,那么他们之间就存在依赖关系

    【概念】表示两个或多个模型元素之间语义上的连接关系

    【绘图方式】虚线箭头,箭头指向被使用者
    如:ClassA依赖于ClassB


    image.png

    【小结】

    1. 类中用到了对方

    2. 如果是类的成员属性

    3. 如果是方法的返回类型

    4. 是方法接受的参数类型

    5. 方法中使用到了

    那么这两个类具有关联关系。

    类图---泛化(Generalization)

    泛化关系就是继承关系,是依赖关系的特例。

    【概念】描述类的一般和具体之间的关系,描述的“is a kind of ”的关系

    【绘图方式】实线空心三角箭头,箭头指向父类

    【继承方式】

    1.单继承:一个类只有一个父类

    2.多继承:一个类可以有多个父类,可以从每一个父类中获得允许继承的信息
    如: Class B继承与Class A


    image.png

    【小结】

    泛化关系实际上就是继承关系

    如果A继承了B,那么我们就说A和B存在泛化关系

    类图-实现(Realization)

    A类实现B接口,也是依赖关系的特例

    【概念】将一种模型关系与另一种模型关系连接起来,从而说明和其实现之间的关系,简单的理解为一个类或多个类实现一个接口

    【绘图方式】封闭空箭头的虚线,箭头指向接口
    如:Class A实现了Interface A


    image.png

    类图-关联关系

    类与类之间的关系,是依赖关系的特例 关联关系具有导航性:即双向关系或单向关系 关联关系有多重性:1:1,1:n,n:m
    如: ClassA与ClassB相互关联


    image.png

    如:ClassA关联于ClassB

    有方向的关联(DirectedAssociation)

    image.png

    类图---聚合(Aggregation)

    【概念】聚合关系表示整体和部分的关系,描述了“has a”的关系,部分离开整体可以单独存在。聚合关系是关联关系的特例,具有导航性和多重性,使用空心菱性来表示。例如:电脑和鼠标,键盘的关系。

    【绘图方式】空菱形的实线,头部指向整体
    如: 计算机 has-a cpu


    image.png

    类图---组合(Composition)

    【概念】组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;孕妇死了胎儿自然也就死了;表现在代码层面,和关联关系是一致的,只能从语义级别来区分。

    【绘图方式】实菱形的实线,头部指向整体
    如:孕妇 contains-a 胎儿


    image.png

    (本文由笔者自行整理,参考以下博客,欢迎转载,记得说明出处。)

    参考博客:

    http://www.mamicode.com/info-detail-2612659.html

    https://blog.csdn.net/jiuqiyuliang/article/details/8568303

    https://blog.csdn.net/duran1986/article/details/5573415

    相关文章

      网友评论

          本文标题:浅谈UML类图

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