[学习][笔记]设计模式(基于C/C++实现)之 设计基础(二)

简介: [学习][笔记]设计模式(基于C/C++实现)之 设计基础(二)
关联
组合关联

定义 组合也是关联关系的一种特例,他体现的是一种 contains-a 的关系,这种关系比聚 合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分 的,它要求代表整体的对象负责代表部分的对象的生命周期整体的生命周期结束也就意 味着部分的生命周期结束。比如你和你的大脑。 表现在代码层面,和关联关系是一致的,只能从语义级别来区分;

组件组成个体。

箭头及指向

带实心菱形的实线,菱形指向整体

类图关系

聚合关联

定义 聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即 has-a 的关 系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多 个整体对象,也可以为多个整体对象共享。比如公司与员工的关系等。 表现在代码层面,和关联关系是一致的,只能从语义级别来区分。

个体组成整体

箭头及指向

带空心菱形的实心线,菱形指向整体。

类图关系

组合和聚合

普通关联

是一种拥有的关系, 它使一个类知道另一个类的属性和方法,强调的是一种 A-A 的 关系;关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头, 单向的关联有一个箭头。

在代码层面,通常体现为成员变量的关系。

箭头及指向

带普通箭头的实心线,指向被拥有者

类图关系

依赖关联

定义

是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向 的互相依赖。 比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码 层面,为类 B 作为参数被类 A 在某个 method 方法中使用。 局部变量、方法的参数或者对静态方法的调用

箭头指向

带箭头的虚线,指向被使用者

类图关系

对象图

进程视图

序列图(时序图,顺序图)

java123时序图是什么

定义

捕捉一段时间内多个对象间的交互信息,强调消息交互的时间顺序

图示

协作图

状态图

https://zhuanlan.zhihu.com/p/149196661

活动图

活动图

定义

活动图则强调的是从活动到活动的控制流。

活动图是一种表述过程基理、业务过程以及工作流的技术。它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模。

活动图在本质上是一种流程图。

图示

实现视图

构件图

用例视图

用例图

定义

用例是在系统中执行的一系列动作,这些动作将生成特定执行者可见的价值结果。一个用例定义一组用例实例。

简单而言,就是用户的基本操作。

图示

UML实战

pdf书籍

UML在需求分析与系统设计中之实战讲解(完整UML图形演示)

UML类图实例讲解

设计模式

相关文章
|
9天前
|
编译器 开发工具 C语言
配置C++的学习环境
这篇教程介绍了学习C++语言所需的环境配置和软件选择。首先,你需要一个文本编辑器(如Visual Studio Code、Visual Studio、Vim、Emacs或Eclipse)和一个C++编译器(如GCC)。在不同操作系统上安装GCC的方法包括:在Linux或UNIX上使用命令行检查或安装GCC,在Mac OS X上通过Apple的Xcode,而在Windows上则需要安装MinGW。教程还提供了使用Visual Studio创建和编译C++程序的步骤。最后,文章简述了g++编译器的使用及其常用命令选项。
21 0
|
6天前
|
设计模式 开发框架 算法
C++中的设计模式:基本概念与应用
C++中的设计模式:基本概念与应用
20 2
|
13天前
|
算法 C++
c++算法学习笔记 (21) STL
c++算法学习笔记 (21) STL
|
13天前
|
算法 C++
c++算法学习笔记 (20) 哈希表
c++算法学习笔记 (20) 哈希表
|
13天前
|
算法 C++
c++算法学习笔记 (19) 堆
c++算法学习笔记 (19) 堆
|
13天前
|
人工智能 算法 C++
c++算法学习笔记 (18) 约数
c++算法学习笔记 (18) 约数
|
13天前
|
人工智能 算法 C++
c++算法学习笔记 (17) 质数
c++算法学习笔记 (17) 质数
|
13天前
|
算法 C++
c++算法学习笔记 (16) 并查集
c++算法学习笔记 (16) 并查集
|
13天前
|
算法 C++
c++算法学习笔记 (15) 单调栈与单调队列
c++算法学习笔记 (15) 单调栈与单调队列
|
13天前
|
算法 C++
c++算法学习笔记 (14) 栈与队列
c++算法学习笔记 (14) 栈与队列