00-统一建模语言基础知识
00-统一建模语言基础知识
如果我们学东西学不懂,我们只需要从更基础的知识开始学,一起加油吧!
概述
UML是一个通用的可视化建模语言,不同于编程语言,它通过一些标准的图形符号和文字来对系统进行建模
用于对软件进行描述、可视化处理、构建软件系统的文档
是一套总结了以往建模技术的经验并吸收了当今最优秀成果的标准建模方法
本文主要讲解类图
UML的结构
视图(View)
- 用户视图:以用户的观点表示系统的目标,它是所有视图的核心,该视图描述系统的需求
- 结构视图:表示系统的静态行为,描述系统的静态元素,如包、类与对象,以及他们之间的关系
- 行为视图:表示系统的动态行为,描述系统的组成元素如对象在系统运行时的交互关系
- 现实视图:表示系统中逻辑元素的分布,描述系统中的文件以及他们之间的关系
- 环境视图:表示系统中物理元素的分布,描述系统中的硬件设备以及他们之间的关系
图:
- 用例图(use case diagram)--用户视图
- 类图(class diagram), 对象图(Object Diagram),包图(Package Diagram),组合结构图(Composite Structure Diagram)--静态视图(结构视图)
- 状态图(State Diagram),活动图(Activity),顺序图(Sequence Diagram),通信图(Communication Diagram) ,定时图(Timing Diagram),交互概览图(Interaction Overview Diagram) --行为视图(动态视图)
- 组件图(Component Diagram)-- 实现视图
- 部署图(Deployment Diagram) --环境视图
模型元素(Model Element)
- 模型元素包括事物以及事物与事物之间的关系
- 事物是UML的重要组成部分,它代表任何可以定义的东西
- 事物之间的关系把事物联系在一起,组成有意义的结构模型
- 每一个模型元素都有一个与之相对应的图形元素
- 同一个模型元素可以在不同的UML图中使用
- 但无论在哪个图中,同一个模型元素都保持相同的意义和符号
类图
类与类图
- 类(Class)封装了数据和行为,是面向对象的重要组成部分
- 类是具有相同属性、操作、关系的对象集合的总称
- 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务。一个类可以有多重职责,设计的好的类一般只有一种职责
- 类的属性即类的数据职责,类的操作及类的行为职责
- 类图使用出现在体统中的不同类来描述系统的静态结构,它用来描述不同的类以及他们之间的关系
类的UML图示
由三部分构成
- 类名
- 类的属性
- 类的操作
类之间的关系
关联关系 用带箭头的实线表示
关联关系是雷玉磊之间最常用的一种关系,是一种结构化关系,用于表示一类对象与另一类对象之间有关系
关联关系一般在代码中表示为类的注入
双向关联,例如顾客类中包含商品,商品类也中包含顾客
单向关联,顾客类中包含地址类,地址类中不包含顾客
自关联,链表的Node类,类中包含属性previous next,这个属性的类型都是自己Node类
多重性关联,又称为重数性关联关系,表示两个关联对象在数量上的对应关系。在UML中,对象之间的多重性可以直接在关联直线上用一个数字或一个数字范围表示 1..1 0..* 1..* 0..1 m..n
聚合关系 用带空心菱形的直线表示
聚合关系表示整体与部分的关系
成员对象是整体对象的一部分,但是成员对象可以脱离征途对象独立存在
聚合关系在代码中的表现是属性通过构造器或者Set注入
举例:一个car可以包含一个Engine,但是Engine可以脱离Car独立存在
组合关联 用带实心菱形的直线表示
表示类之间整体和部分的关系,组合关系中整体对象可以控制成员对象的生命周期,一旦整体对象不存在,成员对象也将不存在
成员对象与整体对象之间具有同生共死的关系
组合关系在代码中的表现是成员对象一般直接在整体类的构造函数中创建
举例:一个人如果不在了,他的手单独存在也没有意义
依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方
依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系
大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数