- 博客(14)
- 收藏
- 关注
原创 解释器模式学习笔记
文章目录前言一、解释器模式要点二、模式主要结构与实例1.类结构图2.实例总结前言一、解释器模式要点解释器模式:如果一种特定的问题发生的频率足够高,该问题的各个实例可能就值得表达为一个简单语言中的句子,解释器通过解释这些句子来解决该问题。满足以下条件可以使用解释器模式:1.当有一个语言需要解释执行,并且你可将语言中的句子表示为一个抽象语法树时,可使用解释器模式2.该语言文法简单3.效率不是关键问题二、模式主要结构与实例1.类结构图参与者:AbstractExpression(抽象
2021-07-16 23:29:16
165
原创 command模式学习笔记
文章目录一、command模式要点二、模式举例1.实例说明2.C++代码实现总结该模式的优点:该模式的缺点:一、command模式要点command模式是将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化。核心目的:有时候必须向某对象提交请求,但并不想知道关于被请求者的信息(将请求本身与被请求者解耦)模式的适用性:当有如下需求时,可使用command模式:1.由于command模式是回调机制的一个面向对象的代替品,故需要使用回调机制的场景都可以使用2.支持在不同时刻,动态指定
2021-07-04 15:53:14
286
原创 设计模式学习笔记之职责链
文章目录职责链模式基础概念一、模式结构说明二、使用步骤1.引入库2.读入数据总结职责链模式基础概念该模式意图:将一系列处理同类型请求的对象连成一条链,并沿着这条链传递请求,直到有对象处理该请求为止。使多个对象都有机会处理请求,从而解耦发送者与接收者。该模式的适用性:1.有多个的对象可以处理一个请求,哪个对象处理该请求在运行时确定。2.你想在不明确指定接收者的情况下,向多个对象中的一个提交一个请求3.可处理一个请求的对象集合应被动态指定。一、模式结构说明职责链结构主要如下:参与者.
2021-06-15 14:36:45
150
原创 代理模式学习笔记
文章目录一、简述代理模式二、GOF书本例子---文本编辑器中的image1.例子说明:2.C++代码实现总结一、简述代理模式为其它对象提供一种中间代理以控制对这个对象的访问。核心目的:在真正需要的时候才去创建或者初始化某些开销很大的对象,以降低开销。模式适用场景:1.为一个对象在不同地址空间提供局部代表。2.控制对原始对象的访问。3.根据需要创建开销很大的对象。4.需要在访问对象时执行一些附加操作。二、GOF书本例子—文本编辑器中的image1.例子说明:在文本编辑器中,图像(I
2021-05-30 13:56:54
112
原创 享元模式学习笔记
文章目录一、享元模式要点二、享元模式的适用场景二、示例代码1.结构图2.C++简易实现代码一、享元模式要点细粒度对象:可以细分为多个对象的对象,而且通过细分后可以得到更加科学合理的对象模型。享元模式:运用共享技术有效地支持大量细粒度对象。核心目的:存在一些因数量太大而难以用对象来表示的概念或者实体,享元模式可以对这它们进行建模同时无需付出高昂的代价。二、享元模式的适用场景1.使用了大量的对象2.完全由于使用了大量的对象,造成很大的内存开销3.对象的大多数状态都可变为外部状态4.如.
2021-05-16 20:12:38
66
原创 Facade(外观)模式学习笔记
文章目录意图一、外观模式的适用性二、实际例子与实现1.场景介绍2.例子类图3.C++代码实现意图facade模式为复杂子系统定义了一些统一的接口,使得这一子系统更加容易使用。一、外观模式的适用性适用性:1.当你要为一个复杂子系统提供一个简单接口且不想给不需要定制子系统的用户带来使用上的困难时,façade可以提供一个简单的缺省接口,这对大多数不需要定制子系统的用户来说已经足够。2.若客户程序与抽象类的实现部分存在很大的依赖性,想将子系统与客户代码以及其它子系统分离。3.当你需要建立一个.
2021-04-17 12:34:22
100
原创 装饰模式学习笔记
文章目录一、装饰模式的基本概念1.装饰模式的动机与意图2.装饰模式的典型结构图3.装饰模式的优缺点二、C++代码实例1.C++代码2.代码运行结果一、装饰模式的基本概念1.装饰模式的动机与意图装饰模式的主要意图:动态地给一个对象添加一些额外地职责。就增加功能而言,装饰模式相比生成子类而言更加灵活。动机:给某个对象而不是整个类添加一些功能。适用场景:1.在不影响其它对象的前提下,以动态、透明的方式给单个对象添加职责。2.处理那些可以撤销的临时职责。3.当不能使用生成子类的方法去进行扩充时
2021-04-05 21:27:06
206
原创 组合模式学习笔记
文章目录composite模式一、composite模式适用场景二、C++代码实现示例1.composite模式的典型结构图2.典型结构图的C++实现(核心代码部分)模式优点总结composite模式意图:composite属于对象结构型模式,它将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。一、composite模式适用场景1.需要表示对象的部分-整体的层次结构(这个看结构图就能看出来)2.希望用户忽略组合对象和单个对
2021-04-04 19:23:28
54
原创 简单认识MQTT
认识MQTT前言一、MQTT是什么?二、MQTT的交互流程1.MQTT中的角色分工2.MQTT的协议数据包的主要组成文章目录前言一、MQTT是什么?二、MQTT的交互流程1.MQTT中的角色分工2.MQTT的协议数据包的主要组成前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、MQTT是什么?MQTT(Message Queu
2021-03-28 20:12:05
618
原创 设计模式之桥模式学习笔记
文章目录前言一、什么是桥(bridge)模式?二、C++伪代码实例1.具体实现代码2.客户使用代码总结前言一、什么是桥(bridge)模式?示例:桥(Bridge)模式是用于把抽象化(通常是抽象类)与实现(接口)解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。二、C++伪代码实例1.具体实现代码场景描述:假定某个抽象基类Implement和它的具体实现类implement1、implement2…类中只有do_so.
2021-03-13 22:52:58
464
原创 设计模式之原型学习笔记
目录一、原型模式基本概念1.作用2.适用场景二、C++伪代码实例1.场景说明一、原型模式基本概念1.作用 用原型指定创建对象的种类,并通过拷贝这些对象去创建新的对象 即为每种类型对象提供一个“原型模板”,在创建同种类型对象时,直接拷贝“原型模板”。2.适用场景 当直接创建对象的代价比较大(如类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等)和性能和安全要求比较高时,则适合采用这种模式。二、C++伪代码实例1.场景说明配钥匙:一个配钥匙的服务商,客户需要配什
2021-03-07 13:36:58
80
原创 adaptor设计模式学习笔记
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档adaptor设计模式核心作用一、核心概念二、C++伪代码示例总结核心作用 作为两个不同接口之间的中间转换者(尽可能避免修改已有源码,将变化隔离在适配器中),解决不同接口之间不兼容问题一、核心概念目标接口(Target):定义客户所需接口,可以是一个抽象类或接口,也可以是具体类原接口(Adaptee):需要被“适配”的原接口,它是已经存在的类或接口等,包含了客户希望使用的某个方面或职责业务方法适配器(Adapt
2021-03-06 21:58:22
270
原创 builder设计模式核心要点总结与伪代码实例
builder设计模式总结什么是builder模式?Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不需要知道内部构建细节的情况下,去构造复杂对象。builder模式的根本目的将****构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。builder模式的实际例子以建房子为例Builder模式主要角色:房子product(最终结果),builder负责制定房子的组成部分和方法,director指挥者负责使用builder提供的方法,控制整个建房子的流程
2021-02-07 20:31:56
80
原创 用C++实现(抽象工厂实例)
设计模式之---(抽象)工厂模式用C++实现(抽象工厂实例)前言一、什么是抽象工厂模式?二、为什么需要抽象工厂模式三、C++代码示意图1.调用者---sys_init函数2.抽象工厂class_hardware代码2.lcd具体工厂代码运行结果用C++实现(抽象工厂实例)提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录用C++实现(抽象工厂实例)前言一、什么是抽象工厂模式?二、为什么需要抽象工厂模式三、C++代码示意图1.调用者---sys_init函数2.抽象工厂class
2021-01-31 22:54:01
464
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人