• UML图


    转载自:https://blog.csdn.net/weixin_29230649/article/details/114773522

    UML,全称Unified Modeling Language,统一建模语言。而UML图分为用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等9种图。

    在面向对象语言中,我们经常看到有用UML类图去表示各种接口和类之间关系的。但是,每次看的都是云里雾里,搞不清楚那些虚线,箭头都是代表什么意思。今天,就让我们来一探究竟吧。

    UML类图中有六种关系,分别是依赖关系,关联关系,聚合关系,组合关系,实现关系,泛化关系。

    经过我自己的理解,画出了六种关系的示例图。类的成员变量和方法前面的修饰符有public, private, protected, default,在UML类图中分别用 +, -, #, ~表示。

    一、依赖关系

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

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

    87199caee8e17054add5fd9e5ad8bbd0.png

    二、关联关系

    关联关系是对象之间的一种引用关系,表示一个类和另外一个类之间的联系,如老师和学生,丈夫和妻子等。

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

    4c277e7473526883d076d10a3cc8ae48.png

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

    三、聚合关系

    聚合关系是关联关系的一种,表示整体和部分之间的关系,如学校和老师,车子和轮胎。

    聚合关系在类中是通过成员对象来体现的,成员是整体的一部分,成员也可以脱离整体而存在。如老师是学校的一部分,同时老师也是独立的个体,可以单独存在。

    在UML类图中,用带空心菱形的实线来表示聚合关系,菱形指向整体。

    9be585cd9cfbc1210c4d6e90d384fa67.png

    四、组合关系

    组合关系是整体和部分之间的关系,也是关联关系的一种,是一种比聚合关系还要强的关系。部分对象不能脱离整体对象而单独存在,如人的身体和大脑之间的关系,大脑不能脱离身体而单独存在。

    在UML类图中,用带实心菱形的实线来表示组合关系,菱形指向整体。

    33cd48361c237de49603365e4de32208.png

    五、实现关系

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

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

    fb1d72fb7dbadaf2906f05b37dae77b0.png

    如上图,北京大学和清华大学分别实现了大学接口。

    六、泛化关系

    泛化关系其实就是父子类之间的继承关系,表示一般与特殊的关系,指定子类如何特殊化父类的特征和行为。

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

    3faf981bd76d98130505aa6d5db18677.png

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

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

    依赖关系 < 关联关系 < 聚合关系 < 组合关系 < 实现关系 = 泛化关系
    ————————————————
    版权声明:本文为CSDN博主「珍妮之吻」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_29230649/article/details/114773522

  • 相关阅读:
    jquery通过val()取不到textarea中的值
    form表单右边弹窗提示不能为空
    正则表达式
    layui表格的批量删除功能
    layui中table表格的操作列(删除,编辑)等按钮的操作
    layui动态渲染生成select的option值
    layui实现table表格的“关键字搜索”功能
    Python3基础 break while循环示例
    Python3基础 bool类型变量赋值
    Python3基础 assert 断言 确保程序的正确运行条件
  • 原文地址:https://www.cnblogs.com/pungwe/p/14661199.html
Copyright © 2020-2023  润新知