UML —— Unified Modeling Lanaguage(统计建模语言),是一种软件系统分析和设计的语言工具,他用于帮助软件开发人员进行思考和记录思路的结果。

UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系。比如:类、接口、实现、泛化、依赖、组合、聚合等。

UML 图

画UML图与写文章差不多,都是把自己的思想描述给别人看,关键在于思路和条理,UML图分类:

  • 用例图
  • 静态结构图:类图,对象图,包图,组件图,部署图
  • 动态行为图:交互图(时序图与协作图),状态图,活动图

说明

  • 类图是描述类与类之间关系的,是UML图中最核心的

UML 类图

  • 用于描述系统中的类(对象)本身的组成和类(对象)之间的各种静态关系

  • 类之间的关系,依赖,泛化(继承),实现,关联,聚合与组合

    比如说:

    class Person{
    private Integer id ;
    private String name ; public Integer getId() {
    return id;
    }
    public void setId(Integer id) {
    this.id = id;
    }
    }

类图-依赖关系

关于依赖关系,就是,只要用到了你,那我们就存在依赖关系,如果我的世界从此没了你,那我就编译过不去。

小结

  • 类中用到了对方
  • 是类的成员属性
  • 是方法的返回类型
  • 是方法接收的参数类型
  • 方法中用到的

类图-泛化关系

小结

  • 泛化关系实际上就是继承关系
  • 如果 A 继承 B , 我们就说A和B存在泛化关系

类图-实现关系

这个是接口的实现

类图-关联关系

关联关系实际上是类与类之间的联系,他是依赖关系的特例。

关联具有导航性:即双向关系或单向关系

关联具有多重性:如“1”(表示有且仅有一个),“0”(表示0个或多个)

类图-聚合关系

聚合关系表示的是整体和部分的关系,整体和部分可以分开。聚合关系是关联关系的特例,所以它具有关联的导航性和多重性。

使用空心菱形的实线来表示

class Computer{
private Mouse mouse ;
private Monitor monitor ;
public void setMouse(Mouse mouse) {
this.mouse = mouse;
}
public void setMonitor(Monitor monitor) {
this.monitor = monitor;
}
}

类图-组合关系

组合关系:也是整体与部分的关系,但是整体与部分不可分开。

如下面实例:Person与IDCard是聚合关系,Person与Head是组合关系

class Person{
private IDCard card ;
private Head head = new Head(); // 不可分离
}

【设计模式】 (2)关于UML的更多相关文章

  1. 设计模式——1.概述&UML类图和时序图

    声明:本博客设计模式相关文章均整理和修改自网络,原文地址:图说设计模式 学习设计模式的3个层次—— 1.熟悉所有设计模式: 2.能够用代码实现: 3.运用到工作的项目中. 设计模式指导软件开发,学习设 ...

  2. 设计模式学习起点 UML类图笔记

    UML类图笔记 大学开设的软件设计课程一般都会学习UML类图,大部分关于设计模式的描述都是使用的UML类图,可以说类图的表示是学习设计模式的起点.UML定义类之间的关系主要有六种:泛化关系.实现关系. ...

  3. 设计模式 第一天 UML图,设计模式原则:开闭原则、依赖倒转原则、接口隔离原则、合成复用原则、迪米特法则,简单工厂模式

    1 课程大纲 2 UML的概述 总结: UML unified model language 统一建模语言 一共有十种图: 类图 用例图 时序图 * 对象图 包图 组件图 部署图 协作图 状态图 (最 ...

  4. 设计模式(含UML、设计原则、各种模式讲解链接)

    一.统一建模语言UML UML是一种开放的方法,用于说明.可视化.构建和编写一个正在开发的.面向对象的.软件密集系统的制品的开放方法 UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进 ...

  5. GOF 的23种JAVA常用设计模式总结 02 UML中的类图与类图之间的关系

    统一建模语言UML 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际 ...

  6. Java设计模式(一):设计模式概述、UML图、设计原则

    1 设计模式概述 1.1 软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中. 1977年美国著名建筑大师.加利福尼亚大学伯克利分校环境结构 ...

  7. [设计模式] 读懂UML图

    类之间关系(由强到弱) realize(继承):三角+实线(指向类),继承类(SUV是一种汽车) generalization(实现):三角+虚线(指向接口),实现接口(汽车是一种车) composi ...

  8. 设计模式(一)----设计模式概述及UML图解析

    1.设计模式概述 1.1 软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中. 1977年美国著名建筑大师.加利福尼亚大学伯克利分校环境结构 ...

  9. 设计模式之前之UML

    UML,让系统可视化,让规格和设计文档化的表现方法.下面来简单介绍一下这个UML.

  10. 2.设计模式常用的UML图分析(用例图、类图与时序图)

    1-用例图 概述 展现了一组用例.参与者以及他们之间的关系. 用例图从用户角度描述系统的静态使用情况,用于建立需求模型. 用例特征 保证用例能够正确捕捉功能性需求,判断用例是否准确的依据. 用例是动宾 ...

随机推荐

  1. CodeForces 1243"Character Swap (Hard Version)"(multimap)

    传送门 •前置知识-multimap的用法 $multimap$ 与 $map$ 的区别在于一个 $key$ 可以对应几个值: 对于 $map$ 而言,一个 $key$ 只能对应一个值,并且按照 $k ...

  2. [转]基于VS Code快速搭建Java项目

    有时候随手想写一点Java测试代码,以控制台程序为主,还会用到一些其它框架,并基于Maven构建. 1.Java Extension Pack一定要安装. 2.VS Code打开一个指定目录,创建相应 ...

  3. Can you find it?——[二分查找]

    Description Give you three sequences of numbers A, B, C, then we give you a number X. Now you need t ...

  4. P1057 迷宫路径

    题目描述 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, ...

  5. C# 如何引用 WshShell 类

    如果想要创建快捷方式等,很多使用都需要引用 WshShell 类,这个类需要通过 COM 的方法引用 引用 WshShell 不是在一个程序集,而是 Windows Script Host Objec ...

  6. 纵我不往,知识不来--学习Java第一周心得

    暑假第一周,也是开始学习java的第一周. 本周的主要时间花在了小学期的任务上,但也草草开始了java的学习.首先安装好了所需要的软件,然后在网上下载了一份<Java基础笔记>,看了前五章 ...

  7. hexo+github搭建博客(超级详细版,精细入微)

    # 前言 你了解[Hexo]( https://hexo.io/zh-cn/ "Hexo官网")吗? Hexo是一个静态博客框架,基于Node.js,将Markdown文章通过渲染 ...

  8. uniapp安卓ios百度人脸识别、活体检测、人脸采集APP原生插件

    插件亮点 1 支持安卓平板(横竖屏均可),苹果的iPad.2 颜色图片均可更换. 特别提醒 此插件包含 android 端和 iOS 端,考虑到有些同学只做其中一个端的 app,特意分为 2 个插件, ...

  9. 【C++】将调用第三方库的代码封装成动态库供上层调用

    需求分析 Java应用中需要调用C++的程序,而这个C++的程序中需要引入一个第三方静态库.所以需要将该程序编译成一个动态库文件(.so)供Java调用. 步骤 使用CLion创建一个动态库的项目,会 ...

  10. win32汇编简单实现窗口程序

    .386 .model flat,stdcall option casemap:none ;========================== ;include部分 include windows. ...