【设计模式】 (2)关于UML
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.概述&UML类图和时序图
声明:本博客设计模式相关文章均整理和修改自网络,原文地址:图说设计模式 学习设计模式的3个层次—— 1.熟悉所有设计模式: 2.能够用代码实现: 3.运用到工作的项目中. 设计模式指导软件开发,学习设 ...
- 设计模式学习起点 UML类图笔记
UML类图笔记 大学开设的软件设计课程一般都会学习UML类图,大部分关于设计模式的描述都是使用的UML类图,可以说类图的表示是学习设计模式的起点.UML定义类之间的关系主要有六种:泛化关系.实现关系. ...
- 设计模式 第一天 UML图,设计模式原则:开闭原则、依赖倒转原则、接口隔离原则、合成复用原则、迪米特法则,简单工厂模式
1 课程大纲 2 UML的概述 总结: UML unified model language 统一建模语言 一共有十种图: 类图 用例图 时序图 * 对象图 包图 组件图 部署图 协作图 状态图 (最 ...
- 设计模式(含UML、设计原则、各种模式讲解链接)
一.统一建模语言UML UML是一种开放的方法,用于说明.可视化.构建和编写一个正在开发的.面向对象的.软件密集系统的制品的开放方法 UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进 ...
- GOF 的23种JAVA常用设计模式总结 02 UML中的类图与类图之间的关系
统一建模语言UML 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际 ...
- Java设计模式(一):设计模式概述、UML图、设计原则
1 设计模式概述 1.1 软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中. 1977年美国著名建筑大师.加利福尼亚大学伯克利分校环境结构 ...
- [设计模式] 读懂UML图
类之间关系(由强到弱) realize(继承):三角+实线(指向类),继承类(SUV是一种汽车) generalization(实现):三角+虚线(指向接口),实现接口(汽车是一种车) composi ...
- 设计模式(一)----设计模式概述及UML图解析
1.设计模式概述 1.1 软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中. 1977年美国著名建筑大师.加利福尼亚大学伯克利分校环境结构 ...
- 设计模式之前之UML
UML,让系统可视化,让规格和设计文档化的表现方法.下面来简单介绍一下这个UML.
- 2.设计模式常用的UML图分析(用例图、类图与时序图)
1-用例图 概述 展现了一组用例.参与者以及他们之间的关系. 用例图从用户角度描述系统的静态使用情况,用于建立需求模型. 用例特征 保证用例能够正确捕捉功能性需求,判断用例是否准确的依据. 用例是动宾 ...
随机推荐
- CodeForces 1243"Character Swap (Hard Version)"(multimap)
传送门 •前置知识-multimap的用法 $multimap$ 与 $map$ 的区别在于一个 $key$ 可以对应几个值: 对于 $map$ 而言,一个 $key$ 只能对应一个值,并且按照 $k ...
- [转]基于VS Code快速搭建Java项目
有时候随手想写一点Java测试代码,以控制台程序为主,还会用到一些其它框架,并基于Maven构建. 1.Java Extension Pack一定要安装. 2.VS Code打开一个指定目录,创建相应 ...
- 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 ...
- 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, ...
- C# 如何引用 WshShell 类
如果想要创建快捷方式等,很多使用都需要引用 WshShell 类,这个类需要通过 COM 的方法引用 引用 WshShell 不是在一个程序集,而是 Windows Script Host Objec ...
- 纵我不往,知识不来--学习Java第一周心得
暑假第一周,也是开始学习java的第一周. 本周的主要时间花在了小学期的任务上,但也草草开始了java的学习.首先安装好了所需要的软件,然后在网上下载了一份<Java基础笔记>,看了前五章 ...
- hexo+github搭建博客(超级详细版,精细入微)
# 前言 你了解[Hexo]( https://hexo.io/zh-cn/ "Hexo官网")吗? Hexo是一个静态博客框架,基于Node.js,将Markdown文章通过渲染 ...
- uniapp安卓ios百度人脸识别、活体检测、人脸采集APP原生插件
插件亮点 1 支持安卓平板(横竖屏均可),苹果的iPad.2 颜色图片均可更换. 特别提醒 此插件包含 android 端和 iOS 端,考虑到有些同学只做其中一个端的 app,特意分为 2 个插件, ...
- 【C++】将调用第三方库的代码封装成动态库供上层调用
需求分析 Java应用中需要调用C++的程序,而这个C++的程序中需要引入一个第三方静态库.所以需要将该程序编译成一个动态库文件(.so)供Java调用. 步骤 使用CLion创建一个动态库的项目,会 ...
- win32汇编简单实现窗口程序
.386 .model flat,stdcall option casemap:none ;========================== ;include部分 include windows. ...