UML类图

UML类图

    一、什么是UML

    统一建模语言(Unified Modeling Language,缩写UML)是非专利的第三代建模和规约语言。
    UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。

    UML分为模型和图形两大类。区分UML模型和UML图是非常重要的,UML图(包括用例图、协作图、活动图、序列图、部署图、构件图、类图、状态图)是模型中信息的图表表达形式,但是UML模型独立于UML图存在。

    二、为什么要学习UML类图

   在学习设计模式的时候,UML类图是帮助我们理清楚各个类之间关系的一个非常重要的工具

    三、UML类图格式

    一般是长方形(分三格)
    1)类名:在最上面那格(粗体,如果是类是抽象类则类名显示为斜体)
    2)属性(成员变量):在中间位置(可见性 名称:类型[=默认值])
    3)方法(成员函数):在最下面位置(可见性 名称(参数列表 参数1,参数2) :返回类型)

    可见性:一般为public、private、protected、default,在类图分别用+、-、#、~

    类与类之间的表达式:
    类图中类与类之间的关系主要由:继承、实现、依赖、关联、聚合、组合这六大类型。表示方式如下图:

  

   1. 继承关系

   继承关系表示一般与特殊的关系,指定子类如何特殊化父类的特征和行为。

   在UML类图中,用带空心三角箭头的实线来表示泛化关系,箭头从子类指向父类。

   说明:上图中,父类动物有一个吃的方法,小鸟和狮子都继承于动物类,小鸟有它特有的方法飞行,而狮子有特有的方法奔跑。

   2. 实现关系

   实现关系就是接口和实现类之间的关系。类实现了接口中的抽象方法。

   在UML类图中,用带空心三角箭头的虚线来表示实现关系,箭头从实现类指向接口。

   如下图:

   说明:如上图,父类动物有一个吃的方法,小鸟和狮子都继承于动物类,小鸟有它特有的方法飞行,而狮子有特有的方法奔跑。

   3. 依赖关系

   依赖关系是一种使用关系,表示某个类依赖于另外一个类,通常表现为,某个类的方法的参数使用了另外一个类的对象。

   在UML类图中,依赖关系用带箭头的虚线表示,箭头从使用类指向被依赖的类。下图中表示,程序员依赖于计算机来编写代码。

   4.  关联关系

   关联关系是对象之间的一种引用关系,表示一个类和另外一个类之间的联系,如老师和学生,学生和课程

   关联关系有单向和双向的。在UML类图中,单向关联用一个带箭头的实线表示,箭头从使用类指向被关联的类,双向关联用带箭头或者没有箭头的实线来表示。

   说明:上图表示老师和学生之间的关系是双向的,一个老师可以有多个学生,一个学生也可以有多个老师。学生和课程之间是单向的,一个学生会学习多门课程,而课程是一个抽象的概念,它不拥有学生。

   5. 聚合关系(Aggregation)

   聚合关系是一种特殊的关联关系,表示整体和部分之间的关系(has-a),是一种不稳定的包含关系。如学校和老师,车子和轮胎。

   聚合关系强调的是整体和部分的关系,其中部分可以脱离整体而存在。如老师是学校的一部分,同时老师也是独立的个体,可以单独存在。

   在UML中聚合关系用空心菱形的直线表示,菱形指向整体。

   举例:

   1) 汽车发动机是汽车的一部分,但是发动机也可以独立存在

   2)大雁是雁群的一部分,但是大雁也可以独立存在

   如下图:

   6. 组合关系(composition)

   组合关系表示类的整体和部分之间的关系,整体和部分具有一致的生命周期。一旦整体对象不存在,部分对象也就不存在了,它们都会在同一个生命中死去。例如,一个人是由一个头和一个身体组成的。两者密不可分,并存。

   在UML中用带实心菱形的直线表示,菱形指向整体。

   举例:

   1) 头是整体,嘴巴只是一个部分。嘴巴不能独立存在

   2)羽毛是大雁的一部分,但是羽毛不能独立存在。

   如下图:

 

 

   四、总结

   六种关系中,从弱到强依次是:

   依赖关系 < 关联关系 < 聚合关系 < 组合关系 < 实现关系 = 继承关系

 

   参考链接:

   https://www.cnblogs.com/mq0036/p/8296917.html

   https://juejin.cn/post/6844903893327937550

   https://segmentfault.com/a/1190000021317534

 

posted @ 2023-08-25 09:05  欢乐豆123  阅读(36)  评论(0编辑  收藏  举报