![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
每月一篇
文章平均质量分 68
klbc
这个作者很懒,什么都没留下…
展开
-
单元测试之 - gtest(构建、安装、demo,覆盖率测试)
一、简介我们熟悉的单元测试框架有很多,比如 gtest, boost.test, catch等,今天以功能完备,文档丰富,比较常用的 gtest 为例子,包括构建、安装、demo, 覆盖率展示等。文章主要面向对单元测试了解不多的小白,更多单元测试内容自己百度吧,内容很多。注1、如下内容在个人的腾讯计算云上完成,linux ubuntu系统2、自行百度的意思是搜索,不是真的百度,能用google最好不要用百度,做开发的都懂。二、gtest构建和安装1、源码下载github.原创 2022-05-28 12:43:30 · 3503 阅读 · 0 评论 -
Linux 进程间通信之 - 信号量
前言很久不用,基本概念虽然还记得,估计不会用了,做个小demo练练手。概念信号量(信号灯)本质上是一个计数器,用于协调多个进程(包括但不限于父子进程)对共享数据对象的读/写。它不以传送数据为目的,主要是用来保护共享资源(信号量、消息队列、socket连接等),保证共享资源在一个时刻只有一个进程独享。信号量是一个特殊的变量,只允许进程对它进行等待信号和发送信号操作。最简单的信号量是取值0和1的二元信号量,这是信号量最常见的形式。通用信号量(可以取多个正整数值)和信号量集方面的知识比较复杂,原创 2022-05-03 17:55:55 · 1716 阅读 · 0 评论 -
设计模式之抽象工厂模式 - 202205
模式动机 在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方法。但是有时候我们需要一个工厂可以提供多个产品对象,而不是单一的产品对象。 为了更清晰地理解工厂方法模式,需要先引入两个概念: 产品等级结构:产品等级结构即产品的继承结构,如一个抽象类是电视机,其子类有海尔电视机、海信电视机、TCL电视机,则抽象电视机与具体品牌的电视机之间构成了一个产品等级结构,抽象电视机是父类,而具体.原创 2022-04-30 15:47:21 · 126 阅读 · 0 评论 -
设计模式之桥接模式 - 202201
模式动机设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下两种设计方案:第一种设计方案是为每一种形状都提供一套各种颜色的版本。 第二种设计方案是根据实际需要对形状和颜色进行组合对于有两个变化维度(即两个变化的原因)的系统,采用方案二来进行设计系统中类的个数更少,且系统扩展更为方便。设计方案二即是桥接模式的应用。桥接模式将继承关系转换为关联关系,从而降低了类与类之间的耦合,减少了代码编写量。模式定义桥接原创 2022-04-16 12:41:41 · 633 阅读 · 0 评论 -
设计模式之适配器模式 - 202202
模式动机在软件开发中采用类似于电源适配器的设计和编码技巧被称为适配器模式。 通常情况下,客户端可以通过目标类的接口访问它所提供的服务。有时,现有的类可以满足客户类的功能需要,但是它所提供的接口不一定是客户类所期望的,这可能是因为现有类中方法名与目标类中定义的方法名不一致等原因所导致的。 在这种情况下,现有的接口需要转化为客户类期望的接口,这样保证了对现有类的重用。如果不进行这样的转化,客户类就不能利用现有类所提供的功能,适配器模式可以完成这样的转化。 在适配器模式中可以定义一个包装类,包装不兼容接原创 2022-04-10 19:51:02 · 97 阅读 · 0 评论 -
设计模式之装饰模式 - 202203
模式动机一般有两种方式可以实现给一个类或对象增加行为:继承机制,使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增加行为的方式和时机。 关联机制,即将一个类的对象嵌入另一个对象中,由另一个对象来决定是否调用嵌入对象的行为以便扩展自己的行为,我们称这个嵌入的对象为装饰器(Decorator)装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任,换言之,客户端并不会觉得对象在装饰前和装饰后有什么原创 2022-04-10 19:04:33 · 1060 阅读 · 0 评论 -
基于C++11实现的性能耗时统计组件 - 202204
平时经常需要对代码进行性能测试,自己用C++写了一个耗时统计组件,采用C++11标准,不依赖任何特定平台,包含文件即可使用。// PerfTime.h#ifndef _CPP_PERFTIME_H_#define _CPP_PERFTIME_H_namespace PerfTime { // 耗时统计类型 enum class PerfType { PERF_E2E = 0, // 端到端类型,支持多线程 PERF_ACC // 累加原创 2022-04-04 18:47:52 · 1567 阅读 · 0 评论