• Java设计模式精讲之UML急速入门


    简单记录 - 慕课网 - Java设计模式精讲 Debug方式+内存分析

    第2章 UML急速入门

    主要讲解UML基础、UML类图、UML类关系、UML时序图、UML类关系记忆技巧等,让大家急速入门UML,从而为后面设计模式的学习做好准备。

    • 2-1 本章导航
    • 2-2 UML类图讲解
    • 2-3 UML类图讲解-自上而下
    • 2-4 UML类图讲解-对比讲解联想记忆

    2-1、UML简单入门

    UML类图及时序图入门

    定义 特点 分类

    类图 时序图 记忆技巧

    UML角度 理解 设计模式

    UML定义

    UML定义

    • 统一建模语言(英文:Unified Modeling Language,缩写UML)
    • 非专利的第三代建模和规约语言

    UML特点

    UML特点

    • UML是一种开发的方法

    • 用于说明、可视化、构建和编写一个正在开发的面向对象的、软件密集系统的制品的开发方法。

      制品 软件开发过程中 产物 模型 各种流程图 源代码 测试用例 等等 可视化 描述

    • UML展现了一系列最佳工程实践

      这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效 通过UML对系统更深理解

    UML 2.2分类

    UML2.2中一共定义了14种图示,分类如下:

    • 结构式图形:强调的是系统式的建模
    • 行为式图形:强调系统模型中触发的事件
    • 交互式图形:属于行为式图形子集合,强调系统模型中资料流程。

    结构式图形

    • 静态图(类图、对象图、包图)
    • 实现图(组件图、部署图)
    • 剖面图
    • 复合结构图

    行为式图形

    • 活动图
    • 状态图
    • 用例图

    交互式图形

    • 通信图
    • 交互概述图(UML2.0)
    • 时序图(UML2.0)
    • 时间图(UML2.0)

    UML类图

    • Class Diagram:用于表示类、接口、实例等之间相互的静态关系
    • 虽然名字叫类图,但类图中并不只是类 包括权限、属性、方法等等

    理解泛化、实现

    泛化关系 继承关系 记忆技巧

    • UML箭头方向:从子类指向父类

    • 提示:可能会认为子类是以父类为基础的,箭头应从父类指向子类

      从来没有这么想过

      记忆技巧-箭头方向

      • 定义子类时需要通过extends关键字指向父类
      • 子类一定是知道父类定义的,但父类并不知道子类的定义
      • 只有知道对方信息时才能指向对方

      UML 所以箭头方法从子类指向父类

    实线-继承 | 虚线-实现

    在这里插入图片描述

    实现关系

    • 被一个类实现了 ,A类实现B接口 实现关系

    • 三角空心虚线

    实现关系、继承关系

    实线-继承 | 虚线-实现

    • 空心三角箭头:继承或实现

    • 实线-继承 ,is a 关系,扩展目的,不虚,很结实的。

    • 虚线-实现,虚线代表“虚”无实体。实现接口 实现接口方法

    理解依赖、关联

    实线 -关联 | 虚线-依赖

    关联关系 实线

    在这里插入图片描述

    依赖关系

    在这里插入图片描述

    实线 -关联 | 虚线-依赖

    依赖关系 虚线

    • 虚线-依赖关系:临时用一下,若即若离,虚无缥缈,若有若无

      调用的时候才会用一下 虚线 依赖关系

    • 表示一种使用关系,一个类需要借助另一个类来实现功能

    • 一般是一个类使用另一个类做为参数使用,或作为返回值 参数 返回值

    关系关系 实线

    • 实线-关联关系:关系稳定,实打实的关系,铁哥们。
    • 表示一个类对象和另一个类对象有关联
    • 通过是一个类中有另一个类对象做为属性 属性 一个成员变量

    理解聚合、组合

    空心菱形-聚合 | 实心菱形-组合

    • 菱形就是一个盛东西的器皿(例如盘子)

    • 聚合:代表空器皿里可以放很多相同的东西,聚在一起(箭头方向所指的类 个体

    • 组合:代表满器皿里已经有实体结构的存在,生死与共 强关系

    整体与部分 可以离聚合 不可以离组合

    在这里插入图片描述

    组合关系

    鸟和翅膀 人和头 强关系 相同的生命周期 你死我也死

    在这里插入图片描述

    数字?

    空心菱形 聚合关系 记忆技巧

    • 整体和局部的关系,两者有着独立的生命周期,是has a的关系

    • 弱关系

      大雁群 has a 大雁

    • 消极的词:弱 - 空 空心菱形

    实心菱形 组合关系 记忆技巧

    • 整体与局部的关系,和聚合的关系相比,关系更加强烈

      两者有相同的生命周期,contains-a的关系 包含

    • 强关系

    • 积极的词:强 - 满 实心菱形

    在这里插入图片描述

    常见数字表达及含义

    一个鸟 两个翅膀

    UML时序图

    在这里插入图片描述

    生命线 上到下 时间的流逝

    方法调用

    消息

    在这里插入图片描述

    类图 时序图 用例图 重要

    时序图 调用关系

    2-2、UML类 图讲解

    类的表示

    类名 抽象类 斜体表示 接口 <>

    属性 行为

    public + private - protected #

    什么都不加 or ~ 是表示 default

    + max

    - min private

    # protected

    在这里插入图片描述

    横线 static 属性

    横线 static 静态方法

    斜体 抽象方法 有抽象方法 是抽象类 要斜体来表示一下咯所以上面那个图错了

    是抽象类 有抽象方法

    有抽象方法的是抽象类 抽象类要斜体来表示一下

    在这里插入图片描述

    记住这个类图

    类图表示 要 准确 避免产生歧义

    2-3、UML类图讲解 自上而下

    大话设计模式的图 UML图

    在这里插入图片描述

    一起来学习吧

    依赖关系

    虚线箭头 箭头方向 指向被依赖的对象

    在这里插入图片描述

    • 表示一种使用关系,一个类需要借助另一个类来实现功能
    • 一般是一个类使用另一个类做为参数使用,或作为返回值 参数 返回值

    鸟是一种动物

    在这里插入图片描述
    父类 子类 鸟继承动物 箭头方向:子类指向父类

    • UML箭头方向:从子类指向父类

    • 提示:可能会认为子类是以父类为基础的,箭头应从父类指向子类

      从来没有这么想过

      记忆技巧-箭头方向

      • 定义子类时需要通过extends关键字指向父类
      • 子类一定是知道父类定义的,但父类并不知道子类的定义
      • 只有知道对方信息时才能指向对方

      UML 所以箭头方法从子类指向父类

    实线-继承 | 虚线-实现

    • 空心三角箭头:继承或实现

    • 实线-继承 ,is a 关系,扩展目的,不虚,很结实的。

    • 虚线-实现,虚线代表“虚”无实体。实现接口 实现接口方法

    关联关系

    在这里插入图片描述

    关联关系 实线

    • 实线-关联关系:关系稳定,实打实的关系,铁哥们。
    • 表示一个类对象和另一个类对象有关联
    • 通过是一个类中有另一个类对象做为属性 属性 一个成员变量

    有一个类对象的属性

    聚合关系

    在这里插入图片描述

    空心菱形 聚合关系 记忆技巧

    • 整体和局部的关系,两者有着独立的生命周期,是has a的关系

    • 弱关系

      大雁群 has a 大雁

    • 消极的词:弱 - 空 空心菱形

    整体 大雁群 局部、部分 大雁

    空心菱形 菱形指向很多大雁也就是大雁群 箭头指向大雁

    实现关系 空心三角虚线 表示实现关系

    在这里插入图片描述

    空心三角虚线 大雁实现了飞翔这个接口

    棒棒糖表示法 接口表示 实现关系
    在这里插入图片描述

    在这里插入图片描述

    2-4、UML类图讲解 - 对比讲解联想记忆

    依赖关系 虚线箭头 参数、返回值 使用的时候才会关注

    关联关系 实线箭头 实打实的关系 ,一般用了一个类对象作为另一个类的属性

    聚合关系 空心菱形 菱形在整体 箭头在部分 聚在一起 独立的生命周期 弱关系

    组合关系 实心菱形 强关系 人与头 人挂了 头也没生命力了

    继承关系 三角空心实线 类和类之间的关系 继承 子类指向父类

    实现关系 三角空心虚线 虚 实现 指向要被实现的接口

    看图 项目代码 看看UML图 快速理解项目

    总结

    • 定义

    • 特点

    • 分类

    • 类图

    • 时序图

    • 记忆技巧 理解 多用

  • 相关阅读:
    mysql自定义函数多表更新:update_order_relation()
    mysql自定义函数初始化数据:init_data()
    关于tomcat启动错误:At least one JAR was scanned for TLDs yet contained no TLDs
    intellij debug模式提示 Method breakpoints may dramatically slow down debugging
    Linux开机启动流程详细步骤是什么?
    chkconfig 添加脚本开机自启动
    优化SSH配置(一键完成增加若干参数)
    linux目录整理
    linux命令整理
    buffer和cache有什么区别?
  • 原文地址:https://www.cnblogs.com/liuawen/p/12310620.html
Copyright © 2020-2023  润新知