自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 【设计模式】行为模式:模板方法模式

模板方法模式在超类中定义了一个算法的框架,允许子类在不修改结构的情况下重写算法的特定步骤。

2021-11-07 18:33:41 109

原创 【设计模式】行为模式:策略模式

策略模式能让你定义一系列算法,并将每种算法分别放入独立的类中,以使算法的对象能够相互替换。

2021-10-25 18:25:39 126

原创 【设计模式】行为模式:状态模式

状态模式是一种行为设计模式, 让你能在一个对象的内部状态变化时改变其行为, 使其看上去就像改变了自身所属的类一样。

2021-10-07 17:01:56 136

原创 【设计模式】行为模式:观察者模式

观察者模式是一种行为设计模式,允许你定义一种订阅机制,可在对象事件发生时通知多个 “观察” 该对象的其他对象。

2021-09-21 17:31:20 97

原创 【设计模式】行为模式:备忘录模式

备忘录模式是一种行为设计模式, 允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。

2021-09-05 19:07:50 62

原创 【设计模式】行为模式:中介者模式

中介者模式能让你减少对象之间混乱无序的依赖关系。该模式会限制对象之间的直接交互,迫使它们通过一个中介者对象进行合作。

2021-08-15 19:59:53 83

原创 【设计模式】行为模式:迭代器模式

意图迭代器模式是一种行为设计模式, 让你能在不暴露集合底层表现形式 (列表、 栈和树等) 的情况下遍历集合中所有的元素。问题集合是编程中最常使用的数据类型之一。尽管如此,集合只是一组对象的容器而已。大部分集合使用简单列表存储元素。但有些集合还会使用栈、树、图和其他复杂的数据结构。无论集合的构成方式如何,它都必须提供某种访问元素的方式,便于其他代码使用其中的元素。 集合应提供一种能够遍历元素的方式,且保证它不会周而复始地访问同一个元素。如果你的集合基于列表,那么这项工作听上去仿佛很简单。但如何遍历

2021-08-08 20:35:29 115

原创 使用VScode搭建嵌入式Linux图形化调试环境

调试嵌入式Linux的程序时,使用通过打印log的方法进行调试,调试效率不高且不容易定位问题, 而通过SSH连接Linux终端直接使用gdb调试,不仅需要记命令,而且在使用体验上也没有这么好,效率也不高,这时我们就需要搭建一个图形化调试环境来让调试程序变得更加方便。

2021-08-01 19:17:50 1003

原创 【设计模式】行为模式:解释器模式

意图:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。

2021-07-18 20:24:20 78

原创 【设计模式】行为模式:命令模式

意图:它可将请求转换为一个包含与请求相关的所有信息的独立对象。该转换让你能根据不同的请求将方法参数化、延迟请求执行或将其放入队列中,且能实现可撤销操作。

2021-07-04 19:36:11 82

原创 【设计模式】行为模式:责任链模式

意图责任链模式是一种行为设计模式,允许你将请求沿着处理者链进行发送。收到请求后,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者。

2021-06-14 19:51:43 150

原创 【设计模式】结构型模式:代理模式

代理模式是一种结构型设计模式,让你能够提供对象的替代品或其占位符。代理控制着对于原对象的访问,并允许在将请求提交给对象前后进行一些处理。

2021-05-30 16:52:38 57

原创 FFmpeg读取并定位代码中的视频

在没有文件系统时或者内存紧缺时,需要把视频资源转成常量数组直接编译到代码中。本文实现在FFmpeg读取并定位代码中的视频。

2021-05-23 21:18:28 248 1

原创 【设计模式】结构型模式:享元模式

享元模式是一种结构型设计模式,它摒弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,让你能在有限的内存容量中载入更多对象。

2021-05-16 16:17:36 61

原创 【设计模式】结构型模式:外观模式

意图外观模式是一种结构型设计模式, 能为程序库、 框架或其他复杂类提供一个简单的接口。

2021-04-18 12:46:06 65

原创 【设计模式】结构型模式:装饰模式

意图装饰模式是一种结构型设计模式,允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。

2021-04-11 21:28:38 60

原创 【设计模式】结构型模式:组合模式

意图使用组合模式可以将对象组合成树状结构,并且能像使用独立对象一样使用它们。

2021-04-05 13:59:18 69

原创 【设计模式】结构型模式:桥接模式

意图将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构, 从而能在开发时分别使用。

2021-03-21 20:05:41 65

原创 VLD的安装使用及其问题

VLD 的安装使用及其问题(在新版 VS 使用 VLD)

2021-03-14 14:10:46 1185 1

原创 【设计模式】封装器模式:适配器模式

适配器模式是一种封装器模式,它能使接口不兼容的对象能够相互合作。

2021-03-06 22:53:06 147

原创 【设计模式】创建型模式:原型模式

原型模式是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类。

2021-02-28 17:26:25 106

原创 C语言的内嵌汇编

在程序需要在嵌入式平台上运行时,如果需要代码占用内存更小、程序运行的效率更高或需要准确地操作寄存器时,嵌入汇编会是不错的选择。

2021-01-31 19:58:36 530

原创 AWTK-MVVM:数据与命令的绑定

MVVMMVVMModel-View-ViewModel,它是MVC的改进版。MVVM优点:低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的View上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel)。可测试。界面素来是比较难于测试的,测试可以针对Vie

2021-01-24 18:51:27 367

原创 【设计模式】创建型模式:抽象工厂

抽象工厂包含系列中所有产品构造方法的接口。 再基于抽象工厂创建多个具体工厂类,每个具体工厂只能生产特定类别的产品。使用这种方法只需一开始设定选择工厂类别,之后就无需再选择产品类别了。

2021-01-17 17:39:01 92

原创 C/C++中指针与数组的不同

指针: - 指针的本质是一个变量,它保存的目标值是一个内存地址。 - 指针运算与 * 操作符配合使用能够模拟数组的行为。 数组: - 数组是一段连续的内存空间。 - 数组名可看做指向数组第一个元素的常量指针。

2021-01-03 19:31:09 111

原创 使用alsa库播放pcm音频数据

使用alsa库播放pcm音频数据

2020-12-20 16:55:14 1168 2

原创 在C语言中实现工厂模式

在需要对某个功能做拓展时,使用工厂模式能给代码带来尽量少的修改量。本文将通过解码器功能作为例子,遵循SOLID设计原则中的开闭原则和依赖倒置原则在C语言上实现工厂模式。

2020-12-12 11:28:35 454

原创 使用Python修改XML

使用Python的ElementTree(元素树)模块修改XML。

2020-12-06 17:10:28 751

原创 SOLID设计原则

SOLID是面向对象设计五大重要原则的首字母缩写,当我们设计类和模块时,遵守 SOLID 原则就如同它的名字一样:(solid,可靠的),可以让软件更加稳定、灵活和健壮。

2020-11-29 22:07:14 269

原创 软件三层架构设计

三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:表示层(UIL)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。

2020-11-22 17:53:53 554 2

原创 在C语言中函数的默认参数类型

在许多c语言初学者中编写函数时,都喜欢将无参函数中的参数类型忽略。  但是实际上默认的参数类型不是无参void,而是接受任意数量和类型的参数。也就是说int func() 和 int func(void) 是不一样的。

2020-11-15 14:50:25 2840

原创 契约式设计在类和单元测试中的应用

契约式设计(Design by Contract (DbC)),这种设计方式和商业契约的情况类似。契约作用于两方,每一方都会完成一些任务,从而促成契约的达成,但同时,每一方也会接受一些义务,作为制定契约的前提,有任意一方无视了必尽义的义务,则契约失败。

2020-11-11 20:54:30 106

原创 用C语言编写低耦合程序

耦合,是对模块间关联程度的度量。 模块间的耦合度是指模块之间的依赖关系,其耦合性越强,同时表明其独立性越差。  降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的“牵一发动全身”的水波效应,保证系统设计顺利进行。

2020-11-01 09:26:02 2720 8

原创 单元测试中的 FIRST 原则

单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。进行单元测试,可以尽早地发现编写代码中错误,减少后期测试开销和维护成本,提高软件质量。而遵守FIRST原则能让我们写出更好的单元测试。

2020-10-25 09:35:10 2215

原创 用C语言实现C++继承与多态

用C语言实现C++继承与多态

2020-10-18 03:28:48 1239

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除