AbstractFactory模式

STM32 超声波模块输入捕获测距(标准库) 通道2设置为下降沿触发,触发瞬间会将CNT的记录到CCR2中,由于上升沿触发时已经将CNT置零所以此时的CNT的值就是高电平的持续时间。通道1设置为上升沿触发,触发的瞬间会将CNT的值记录到CCR1里面,同时设置通道1触发带有从模式,并把从模式设置为置零CNT。超声波传感器模块上面通常有两个超声波元器件,一个用于发射,一个用于接收。电路板上有四个引脚:VCC、GND、Trig(触发)、Echo(回应)。输入捕获原理可以看看这位大佬,感觉写的很清楚,工作电压与电流:5V,15mA。感测角度:不小于15度。 阅读详情

 

//Product.h

#ifndef _PRODUCT_H

#define _PRODUCT_H

 

class AbstractProductA

{

public:

        ~AbstractProductA();

protected:

        AbstractProductA();

};

 

class AbstractProductB

{

public:

        ~AbstractProductB();

protected:

        AbstractProductB();

};

 

class ProdcutA1:AbstractProductA

{

public:

        ProdcutA1();

        ~ProductA1();

};

 

class ProductA2:AbstractProductA

{

public:

        ProductA2();

        ~ProductA2();

};

 

class ProductB1:AbstractProductB

{

public:

        ProductB1();

        ~ProductB1();

};

 

class ProductB2:AbstractProductB

{

public:

        ProductB2();

        ~ProductB2();

};

#endif

 

//Product.cpp

#include "Product.h"

#include <iostream>

using namespace std;

 

AbstractFactoryA::AbstractFactoryA()

{}

AbstractFactoryA::~AbstractFactoryA()

{}

AbstractFactoryB::AbstractFactoryB()

{}

AbstractFactoryB::~AbstractFactoryB()

{}

ProdcutA1::ProductA1()

{

        cout << "ProductA1.." << endl;

}

ProductA1::~ProductA1()

{}

ProdcutA2::ProductA2()

{

        cout << "ProductA2.." << endl;

}

ProductA2::~ProductA2()

{}

ProdcutB1::ProductB1()

{

        cout << "ProductB1.." << endl;

}

ProductB1::~ProductB1()

{}

ProdcutB2::ProductB2()

{

        cout << "ProductB2.." << endl;

}

ProductB2::~ProductB2()

{}

 

//AbstractFactory.h

#ifndef _FACTORY_H

#define _FACTORY_H

 

class AbstractProductA;

class AbstractProductB;

 

class AbstractFactory

{

public:

        virtual ~AbstractFactory();

        virtual AbstractProductA * CreateProductA() = 0;

        virtual AbstractProductB * CreateProductB() = 0;

protected:

        AbstractFactory();

};

 

class ConcreteFactory1

{

public:

        ConcreteFactory1();

        ~ConcreteFactory1();

        AbstractProductA * CreateProductA();

        AbstractProductB * CreateProductB();

};

 

class ConcreteFactory2

{

public:

        ConcreteFactory2();

        ~ConcreteFactory2();

        AbstractProductA * CreateProductA();

        AbstractProductB * CreateProductB();

};

#endif

 

//AbstractFactory.cpp

#include "AbstractFactory.h"

#include "Product.h"

#include <iostream>

using namespace std;

 

class AbstractFactory::AbstractFactory()

{}

class AbstractFactory::~AbstractFactory()

{}

class ConcreteFactory1::ConcreteFactory1()

{

}

class ConcreteFactory1::~ConcreteFactory1()

{}

AbstractProductA * class ConcreteFactory1::CreateProductA()

{

        return new ProductA1();

}

AbstractProductB * class ConcreteFactory1::CreateProductB()

{

        return new ProductB1();

}

class ConcreteFactory2::ConcreteFactory2()

{

}

class ConcreteFactory2::~ConcreteFactory2()

{}

AbstractProductA * class ConcreteFactory2::CreateProductA()

{

        return new ProductA2();

}

AbstractProductB * class ConcreteFactory2::CreateProductB()

{

        return new ProductB2();

}

 

//main.cpp

#include "AbstractFactory.h"

#include <iostream>

using namespace std;

 

void main(int argc, char * argv[])

{

        AbstractFactoryA1 *cf1 = new AbstractFactoryA1();

        cf1 -> CreateProductA();

        cf1 -> CreateProductB();

        AbstractFactoryA2 *cf2 = new AbstractFactoryA2();

        cf2 -> CreateProductA();

        cf2 -> CreateProductB();

 

        return 0;

}

第47节:cesium 热力图效果(含源码+视频) cesium 热力图效果 阅读详情

相关推荐

《Sigrity SystemSI 2023+LPDDR4仿真自学笔记》(一)创建工程(Part1)

为了加强SystemSI 2023软件的熟悉度,咱们完整的走一个仿真全流程。

weixin_45199544的博客 6328

Factory模式和AbstractFactory模式

一.  AbstractFactory模式1. 意图提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。2. 结构

笑对人生的专栏 2480

C# 进程间 双内存共享 高帧率图像传输

演示了两个进程之间通过 双内存共享 的方式, 来实时处理图像,并以高帧率(40~60FPS)传输的基本示例。 进程间内存共享的优点:高性能、低延迟、资源效率高、简单可靠。 适用场景:实时图像处理、大数据传输、多进程协作、实时监控系统,等等。

qianqiansd 1996

C++ Factory & AbstractFactory 模式

1.工厂模式(Factory): Factory模式是为一类对象提供创建接口或延迟对象的创建到子类中实现 #include using namespace std; //抽象类 class Product { public: virtual ~Product() =0; protected: Product(); private: }; class Concr

4778

自动化测试软件设计:C# + VISA 库实现多接口(GPIB/USB)测试仪器控制

本文介绍了如何利用C#和VISA库开发支持多接口的自动化测试软件。VISA库作为标准化API,能够统一控制GPIB、USB等不同接口的测试设备。文章详细阐述了软件设计目标,包括多接口支持、统一控制、自动化脚本执行等功能。重点讲解了C#中VISA库的安装配置,并提供了设备控制类的核心代码实现,涵盖设备连接、命令发送、响应读取等关键操作。通过具体示例展示了GPIB和USB设备的连接方式,并扩展了自动化测试脚本功能。该方案具有高扩展性和维护性,适用于电子设备测试、生产线检测等多种场景,为自动化测试系统开发提供了实

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1710

ENVI学习总结(十二)——基于改进的 CASA 模型反演 NPP

基于改进的 CASA 模型反演 NPP 数据为地理空间数据云提供的 TM 影像,其具体信息如图 1 所示。该实验中所使用的 TM 数据已进行过 QUAC 快速大气校正,来消除大气和光照等因素对地物反射的影响。Landsat 主题成像仪(TM)是 Landsat4 和 Landsat5 携带的传感器,每 16 天扫描同一地区,即 16 天覆盖全球一次。 TM 影像包含 7 个波段,波段 1-5 ...

Arcgiser的博客 3万+

C++设计模式之二:AbstractFactory Pattern

AbstractFactory模式就是用来解决这类问题的:要创建一组相关或者相互依赖的对象。 AbstractFactory模式关键就是将这一组对象的创建封装到一个用于创建对象的(ConcreteFactory)中,维护这样一个创建类总比维护n多相关对象的创建过程要简单的多。 AbstractFactory模式典型的结构图为: 代码如下://Abst

yyyuhan的专栏 962

RK3588与FPGA高速PCIe通信:从理论带宽到实战优化的全流程解析

本文深入解析了瑞芯微RK3588与FPGA之间基于PCIe Gen2的高速通信全流程。从理论带宽计算(约1640MB/s)出发,详细拆解了硬件连接、驱动加载、DMA配置等关键步骤,并重点分享了中断优化、内存管理及高级调优等实战技巧,旨在帮助开发者从“跑通”到“跑好”,实现接近理论极限的稳定高效数据传输。

weixin_29175469的博客 332

AbstractFactory模式讲解

AbstractFactory模式 零、意图: 提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。 一、解决的问题: 在一款游戏中,怪物都是分等级的,要创建千万个怪物实例,但是要保证初级的怪物类不能创建高级的。 支持多种视感标准的用户界面工具包。 二、动机: 以工具包为例:为解决需求可以定义一个

yangchuankai's blog 803

在jetson上对fastdeploy进行源码编译(完整版)

在大多数Linux发行版中,你可以使用包管理器安装Python开发包。根据jetpack的版本选择对应的推理库版本。在~/.bashrc中写入这三行。

如果想成为中心,那么就到中心去吧。 678

免杀思路总结

免杀思路总结 1.免杀技术简介 1.免杀的重要性 2.免杀的难度 3.杀毒软件的排行 国外 国内 1 、Bitdefender 1、360 2 、Norton 360 2、智量安全(没测过,据说很厉害) 3 、Kaspersky 3、火绒安全 4 、Webroot 4、金山独霸 5 、Trend Micro 5

LiBai'S BLOG 1万+

AbstractFactory 模式

AbstractFactory模式关键就是将这一组对象的创建封装到一个用于创建对象的类(ConcreteFactory)中,维护这样一个创建类总比维护n多相关对象的创建过程要简单的多。图1AbstractFactoryPattern结构图。AbstractFactory模式就是用来解决这类问题的要创建一组相关或者相互依赖的对象。............

Lce的专栏 367

AUTOSAR进阶图解==>AUTOSAR_SWS_CANNetworkManagement

本文介绍了AUTOSAR架构中的CAN网络管理(CanNm)模块,主要内容包括: 模块概述:CanNm是协调CAN网络节点状态转换的基础组件,采用去中心化设计,通过周期性发送网络管理PDU保持网络活跃状态,支持网络唤醒、睡眠和部分网络功能。 架构设计:CanNm位于AUTOSAR中间层,连接上层通信管理器(ComM)和底层CAN接口(CanIf),包含状态管理、PDU处理和定时器管理等子组件。 状态机设计:定义了三种主要模式(总线睡眠、准备睡眠和网络模式)及其转换逻辑,网络模式又包含重复消息、正常操作和准备

一名留德华的,康德的信徒的,专注于汽车电子领域的博客 2040

设计模式-AbstractFactory模式戏说

设计模式-AbstractFactory模式戏说1. 将Factory模式中的抽象基类替换成接口类,不同在于抽象基类不能实例化,而接口类可以。比如比如将汽车类替换成汽车4S店,class 汽车4S店{  public:    汽车4S店();    vitrual ~汽车4S店();    virtual 轮胎* 轮胎()const  {retu

osoon的专栏 1093

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

图解设计模式-AbstractFactory模式

AbstractProduct(抽象产品):负责定义AbstractFactory角色所生成的抽象零件和产品的接口 AbstractFactory(抽象工厂):定义用于生成抽象产品的接口 ConcreteProduct(具体产品):负责实现抽象产品接口 ConcreteFactory(具体工厂):生产具体的产品 ...

localhost 355

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

设计模式——AbstractFactory

上一篇我们提到,可以用工厂模式(Factory Pattern)实现一个类族的对象创建问题,但是对于不同的类,对象创建就需要抽象工厂模式(AbstractFactory Pattern)了。抽象工厂模式的定义为:提供一个创建一系列相关或相互依赖的对象的接口,而无需指定它们具体的类。抽象工厂模式的实现为:将这一组对象的创建封装到一个用于创建对象的类,仅需要维护一个这样的创建类。还是用一个具体的例子来解

weixin_35016347的博客 292

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java类库看设计模式Command,AbstractFactory,Singleton

http://www.ibm.com/developerworks/cn/java/l-jdkdp/part2/   简介:  在 上一部分的内容中,我们讲到什么是模式,什么是设计模式,以及对一个设计模式Observer的详细阐叙。相信大家对于模式的概念应该是比较的理解了。这 部分及以后的内容,将会步入正题,从Java类库的分析入手,来阐叙设计模式是如何应用到一个完美的设计中的。实际上,...

sqcwfiu 184

设计模式笔记—7_AbstractFactory抽象工厂模式

文章目录Abstract Factory抽象工厂模式是一种“对象创建”模式动机定义结构代码对比EmployeeDAO1.cppEmployeeDAO2.cppEmployeeDAO3.cpp对比要点总结 Abstract Factory抽象工厂模式是一种“对象创建”模式 通过“对象创建”模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。它是接口抽...

Felix_hyfy的博客 317

设计模式(二)——AbstractFactory

n

yubinbin1的专栏 317

由歌词引发的模式思考之中篇(AbstractFactory模式)

 上篇的FactoryMethod阐述的是生产不同的交通工具的工厂,要么让老张单独的开车去,要么让他单独的开飞机去,但是呢,这样老张不是很孤独寂寞去东北吗?一点娱乐的气息都木有,OK,现在我们酝酿一个这样的场景,让老张开着车,叼着苹果,扛着AK47去东北,这样老张就不无聊了,车、苹果、AK47,这是一个系列的产品,而AbstractFactory就是解决系列产品生产问题。 二、Abstra...

weixin_30337157的博客 81

设计模式之AbstractFactory模式

前文降到Factory模式,只能解决同一类的对象创建的问题,现在有如下问题: 假如我们需要开发一块游戏,设置不同的关卡,在不同的关卡需要有不同等级的boss。作为开发者我们就需要设计boss的类,然后初级boss,中级boss,高级boss,BT boss都由该类来派生。在每个关卡我们都需要创建类的实例,可以想象该游戏中我们将会创建成千上万的不同实例,还要保证创建的实例不会出错。 Abstra

yingmuliuchuan的博客 814

【C++设计模式】AbstractFactory

1、AbstractFactory模式是为创建一组(有多类)相关或依赖的对象提 供创建接口,而Factory模式是为一类对象提供创建接口或延 迟对象的创建到子类中实现。AbstractFactory模式中的工厂是分为优质工厂、劣质工厂等等工厂,但是工厂有。1、什么时候用Factory,什么时候用AbstractFactory,怎么区别?2、简单点说,Factory模式中的工厂是专门生成铅笔的,但是有。的产品,比如优质工厂会生产有优质铅笔、优质橡皮、优质钢笔等等。的产品,比如优质铅笔、劣质铅笔等等铅笔,

weixin_45830078的博客 49

C++设计模式7——抽象工厂(AbstractFactory)模式

C++设计模式7——抽象工厂(AbstractFactory)模式1. 抽象工厂(AbstractFactory)模式介绍2. 为方便理解,举个例子3. 抽象工厂(AbstractFactory)模式优缺点 1. 抽象工厂(AbstractFactory)模式介绍 定义:提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定它们具体的类。 使用条件: 系统中有多个产品族,每个具体工厂创建同一族但属于不同等级结构的产品。 系统一次只可能消费其中某一族产品,即同族的产品一起使用。 模式的结

kuanyew的博客 490
上一篇: Factory模式
下一篇: Singleton模式
phoebin
博客等级 码龄19年 76粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值