• 【学习笔记】慕课网—Java设计模式精讲 第1章 课程导学-UML类图及时序图入门


    /**
    * UML类图及时序图入门 学习笔记
    * @author cnRicky
    * @date 2018.11.5
    */
    

    本章导航

    1 、类图的定义
    2、类图的特点
    3、类图的分类
    4、类图
    5、时序图(扩展)
    6、记忆技巧

    注:之后讲解学习设计模式的时候,都会从UML的角度来理解

    UML定义

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

    UML特点

    • UML是一种开放的方法

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

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

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

    UML2.2分类

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

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

    结构式图形

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

    行为式图形

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

    交互式图形

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

    UML类图

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

    记忆技巧-箭头方向

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

    记忆技巧-实线-继承|虚线-实现

    • 空心三角箭头:继承或实现
    • 实现-继承,是is a的关系,表示扩展的目的,不虚,很结实
    • 虚线-实现,虚线代表“虚”无实体

    记忆技巧-实现-关联|虚线-依赖


    • 虚线-依赖关系:临时用一下,若即若离,虚无缥缈,若有若无
    • 表示一种使用关系,一个类需要借助另一个类来实现功能
    • 一般是一个类使用另一个类作为参数使用,或作为返回值
    • 实现-关联关系:关系稳定,实打实的关系,铁哥们
    • 表示一个类对象和另一个类对象有关联
    • 通常是一个类中有另外一个类对象做为属性

    记忆技巧-空心菱形-聚合|实心菱形-组合

    • 菱形就是一个盛东西的器皿(例如盘子)
    • 聚合:代表空器皿里可以放很多东西,聚在一起(箭头方向所指类)
    • 组合:代表满器皿里已经有实体结构的存在,生死与共

    聚合关系:

    组合关系:

    记忆技巧-空心菱形-聚合

    • 整体和局部的关系,两者有着独立的生命周期,是has a的关系
    • 两者之间是弱关系
    • 消极的词:弱-空

    记忆技巧-实心菱形-组合

    • 整体与局部的关系,和聚合的关系相比,关系更加强烈,两者有相同的生命周期,contains-a的关系
    • 两者之间是强关系
    • 积极的词:强-满(实心)
    • 常见数字表达及含义,假设有A类和B类,数字标记在A类侧
       0..1:0或1个实例(即表示:B的实例与A的0或1个实例相关)
       0..:   0或多个实例
       1..1: 1个实例
       1:   只能有一个实例
       1..
      : 至少有一个实例

    UML时序图

    • Sequence Diagram:是显示对象之间交互的图,这些对象是按时间顺序排列的
    • 时序图中包括的建模元素主要有:对象(Actor)、生命线(Lifeline)、控制焦点(Focus of control)、消息(Message)等
  • 相关阅读:
    Codeforces Round #646 (Div. 2)【B. Subsequence Hate题解】
    关于MyBatis常见映射异常
    SQL语句汇总(终篇)—— 表联接与联接查询【转载自https://www.cnblogs.com/ghost-xyx/p/3813688.html】
    SQL语句汇总(二)——数据修改、数据查询【转载自https://www.cnblogs.com/ghost-xyx/p/3798362.html】
    浮动元素引起的问题和解决办法
    PHP 神奇的sprintf函数
    关于this,作用域,属性,原型链的一个小练习
    for...of 与 for...in 区别
    ES6 Promise对象then方法链式调用
    ES6通过WeakMap解决内存泄漏问题
  • 原文地址:https://www.cnblogs.com/dreamcoding/p/9909171.html
Copyright © 2020-2023  润新知