- 博客(35)
- 收藏
- 关注
原创 【设计模式】行为模式:状态模式
状态模式是一种行为设计模式, 让你能在一个对象的内部状态变化时改变其行为, 使其看上去就像改变了自身所属的类一样。
2021-10-07 17:01:56 154
原创 【设计模式】行为模式:中介者模式
中介者模式能让你减少对象之间混乱无序的依赖关系。该模式会限制对象之间的直接交互,迫使它们通过一个中介者对象进行合作。
2021-08-15 19:59:53 107
原创 【设计模式】行为模式:迭代器模式
意图迭代器模式是一种行为设计模式, 让你能在不暴露集合底层表现形式 (列表、 栈和树等) 的情况下遍历集合中所有的元素。问题集合是编程中最常使用的数据类型之一。尽管如此,集合只是一组对象的容器而已。大部分集合使用简单列表存储元素。但有些集合还会使用栈、树、图和其他复杂的数据结构。无论集合的构成方式如何,它都必须提供某种访问元素的方式,便于其他代码使用其中的元素。 集合应提供一种能够遍历元素的方式,且保证它不会周而复始地访问同一个元素。如果你的集合基于列表,那么这项工作听上去仿佛很简单。但如何遍历
2021-08-08 20:35:29 137
原创 使用VScode搭建嵌入式Linux图形化调试环境
调试嵌入式Linux的程序时,使用通过打印log的方法进行调试,调试效率不高且不容易定位问题, 而通过SSH连接Linux终端直接使用gdb调试,不仅需要记命令,而且在使用体验上也没有这么好,效率也不高,这时我们就需要搭建一个图形化调试环境来让调试程序变得更加方便。
2021-08-01 19:17:50 1074
原创 【设计模式】行为模式:命令模式
意图:它可将请求转换为一个包含与请求相关的所有信息的独立对象。该转换让你能根据不同的请求将方法参数化、延迟请求执行或将其放入队列中,且能实现可撤销操作。
2021-07-04 19:36:11 104
原创 【设计模式】行为模式:责任链模式
意图责任链模式是一种行为设计模式,允许你将请求沿着处理者链进行发送。收到请求后,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者。
2021-06-14 19:51:43 184
原创 【设计模式】结构型模式:代理模式
代理模式是一种结构型设计模式,让你能够提供对象的替代品或其占位符。代理控制着对于原对象的访问,并允许在将请求提交给对象前后进行一些处理。
2021-05-30 16:52:38 77
原创 FFmpeg读取并定位代码中的视频
在没有文件系统时或者内存紧缺时,需要把视频资源转成常量数组直接编译到代码中。本文实现在FFmpeg读取并定位代码中的视频。
2021-05-23 21:18:28 274 1
原创 【设计模式】结构型模式:享元模式
享元模式是一种结构型设计模式,它摒弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,让你能在有限的内存容量中载入更多对象。
2021-05-16 16:17:36 77
原创 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 401
原创 【设计模式】创建型模式:抽象工厂
抽象工厂包含系列中所有产品构造方法的接口。 再基于抽象工厂创建多个具体工厂类,每个具体工厂只能生产特定类别的产品。使用这种方法只需一开始设定选择工厂类别,之后就无需再选择产品类别了。
2021-01-17 17:39:01 108
原创 C/C++中指针与数组的不同
指针: - 指针的本质是一个变量,它保存的目标值是一个内存地址。 - 指针运算与 * 操作符配合使用能够模拟数组的行为。 数组: - 数组是一段连续的内存空间。 - 数组名可看做指向数组第一个元素的常量指针。
2021-01-03 19:31:09 131
原创 在C语言中实现工厂模式
在需要对某个功能做拓展时,使用工厂模式能给代码带来尽量少的修改量。本文将通过解码器功能作为例子,遵循SOLID设计原则中的开闭原则和依赖倒置原则在C语言上实现工厂模式。
2020-12-12 11:28:35 483
原创 SOLID设计原则
SOLID是面向对象设计五大重要原则的首字母缩写,当我们设计类和模块时,遵守 SOLID 原则就如同它的名字一样:(solid,可靠的),可以让软件更加稳定、灵活和健壮。
2020-11-29 22:07:14 287
原创 软件三层架构设计
三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:表示层(UIL)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。
2020-11-22 17:53:53 575 2
原创 在C语言中函数的默认参数类型
在许多c语言初学者中编写函数时,都喜欢将无参函数中的参数类型忽略。 但是实际上默认的参数类型不是无参void,而是接受任意数量和类型的参数。也就是说int func() 和 int func(void) 是不一样的。
2020-11-15 14:50:25 2902
原创 契约式设计在类和单元测试中的应用
契约式设计(Design by Contract (DbC)),这种设计方式和商业契约的情况类似。契约作用于两方,每一方都会完成一些任务,从而促成契约的达成,但同时,每一方也会接受一些义务,作为制定契约的前提,有任意一方无视了必尽义的义务,则契约失败。
2020-11-11 20:54:30 118
原创 用C语言编写低耦合程序
耦合,是对模块间关联程度的度量。 模块间的耦合度是指模块之间的依赖关系,其耦合性越强,同时表明其独立性越差。 降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的“牵一发动全身”的水波效应,保证系统设计顺利进行。
2020-11-01 09:26:02 2777 8
原创 单元测试中的 FIRST 原则
单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。进行单元测试,可以尽早地发现编写代码中错误,减少后期测试开销和维护成本,提高软件质量。而遵守FIRST原则能让我们写出更好的单元测试。
2020-10-25 09:35:10 2295
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人