C++23种设计模式(未整理,未完待续6/11)

文章目录


1.设计模式分类
在这里插入图片描述
设计模式的本质特征: 封装变化
(栈队列:适配器设计模式)
1) 创建型设计模式
在这里插入图片描述
2) 结构性设计模式
在这里插入图片描述
3) 行为型设计模式
在这里插入图片描述

红色为重点
在这里插入图片描述

2.创建类设计模式
1)单例模式:一个类只有一个实体

1.为什么将构造函数私有化?
①不希望构造函数被随意调用,不能在类之外直接创建对象(protected 的基类是抽象类)
②在类内部创建对象 :public的静态方法
2.pubic静态方法
①静态的数据成员指针(指向本类型的指针,要找到单例类创建的对象)
2)工厂模式

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

这样不行,就放入工厂
静态工厂模式
在这里插入图片描述
但是还要选择,故使用枚举
静态工厂方法
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
缺点:

  • 1.违反了开闭原则,扩展性受限
  • 2.违反了单一职责原则,做的事情太多了

使用条件:
使用类型比较少的时候


要进行改造-》
纯虚类当基类
在这里插入图片描述
继承
加override的好处,防止写错
工厂模式:对象的创建延迟到子类
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
基类指针托管派生类对象,

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
抽象工厂:一个工厂既生产图形,又生产涂料(生成多种类型的产品,然后组装成最终产品)
在这里插入图片描述

工厂模式使用场景:

不确定产品的类型,只是提供一个框架,
1.对于简单的对象,不需要使用工厂模式
2.对于复杂对象的创建,可以使用工厂模式

3)观察者模式
定义:定义对象间的一种一对多的依赖信息,当一个对象的状态发生改变时,所有所依赖他的都西昂都得到通知并被自动更新

结构:

在这里插入图片描述
类的前向声明可以减少头文件的依赖

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
subject.cpp

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
dynamic_cast<。>动态转换,优先使用指针,引用的话初始化就要赋值
dynamic_cast作用:如果能转换成功,就直接返回相应的地址;如果转换失败,返回的是空指针
在这里插入图片描述

在这里插入图片描述
在类内部实现的函数都是inline的,实现更快
::rand加匿名空间的随机种子

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
看线程 ps -elLf

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

using 编译指令
using namespace wd;
using 声明机制
using wd::Thread


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部