加载中
【设计模式】结构型模式:代理模式

意图 代理模式是一种结构型设计模式,让你能够提供对象的替代品或其占位符。代理控制着对于原对象的访问,并允许在将请求提交给对象前后进行一些处理。 问题1 现在有3个应用需要播放声音,而...

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

什么情况下视频会存储在代码中? 在没有文件系统时或者内存紧缺时,就需要把视频资源转成常量数组直接编译到代码中。 实现 实现方式 将常量数组分块放入内存,再从内存中读取数据。 从内存中...

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

意图 享元模式是一种结构型设计模式,它摒弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,让你能在有限的内存容量中载入更多对象。 问题 你需要开发一款游戏,玩家...

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

意图 外观模式是一种结构型设计模式, 能为程序库、 框架或其他复杂类提供一个简单的接口。 问题 假设你必须在代码中使用某个复杂的库或框架中的众多对象。正常情况下,需要负责所有对象的初...

04/18 12:50
34
【设计模式】结构型模式:装饰模式

意图 装饰模式是一种结构型设计模式,允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。 问题 假设你正在开发一个提供通知功能的库, 其他程序可使用它向用户发送关于重...

04/11 21:36
40
【设计模式】结构型模式:组合模式

意图 使用组合模式可以将对象组合成树状结构,并且能像使用独立对象一样使用它们。 组合模式结构 组件(Component)接口描述了树中简单项目和复杂项目所共有的操作。 叶节点(Leaf)是树的基...

04/05 14:07
32
【设计模式】结构型模式:桥接模式

意图 将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构, 从而能在开发时分别使用。 问题 有一个几何形状Shape类,从它能扩展出两个子类: 圆形Circle和方形Square 。 希望...

03/21 20:17
17
VLD的安装使用及其问题

目录 下载 VLD 安装 VLD 使用 VLD 打开项目 配置 VLD 环境(VS 版本在 2015 及其以下的无需配置) 使用 VLD 问题 应用程序无法正常启动 0xc150002 无法显示内存泄漏处函数调用栈位置信息 Fu...

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

意图 适配器模式能使接口不兼容的对象能够相互合作。 问题 假如你正在使用 C++ 开发一个程序,在开发过程中需要使用一系列用 C 语言编写的函数,需要将一个类传入到这些函数中。而 C 语言是不...

03/06 23:05
176
【设计模式】创建型模式:原型模式

意图 原型模式是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类。 问题 现在有一个对象, 并希望生成与其完全相同的一个复制品(其所有成员变量都要相同)。但...

【设计模式】创建型模式:生成器模式

生成器模式 可分步骤创建复杂对象,使得可以使用相同的创建代码生成不同的对象。(将变化部分的代码放在生成器中) 适用场景 1.在可选参数较多时 示例问题:现在需要建造一栋房屋,可以是简单...

02/08 15:48
49
C语言的内嵌汇编

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

01/31 20:08
80
AWTK-MVVM:数据与命令的绑定

MVVM MVVMModel-View-ViewModel,它是MVC的改进版。 MVVM优点: 低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的View上,当View变化的时候Model可以不变,当...

01/24 19:04
292
【设计模式】创建型模式:抽象工厂

前言   上回在C语言中实现工厂模式,它极大地方便了对某个类进行具体实现上的拓展。但如果一个系统中需要用到许多个类,而工厂方法模式中每个工厂只创建一类具体类的对象,使用简单工厂模式...

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

疑问 首先通过下面例子抛出疑问: define.c #include char g_str[] = "KunQAQrz"; void define_print(void) { printf("define_print() : %s\n", g_str); } main.c #include...

c++
01/03 19:40
29
使用alsa库播放pcm音频数据

下载alsa-lib alsa-project官网:https://www.alsa-project.org/wiki/Main_Page 安装alsa-lib 配置生成Makefile文件: ./configure --prefix=./build --enable-shared=no --enable-static=ye...

2020/12/20 17:03
1.6K
在C语言中实现工厂模式

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

使用Python修改XML

加载元素树模块   Python标准库中,提供了元素树的两种实现。一个是纯Python实现的xml.etree.ElementTree,另一个是速度更快的C语言实现xml.etree.cElementTree。   因为C语言实现的元素...

2020/12/06 17:25
285
SOLID设计原则

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

2020/11/29 22:13
169
软件三层架构设计

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

2020/11/22 18:00
148

没有更多内容

加载失败,请刷新页面

返回顶部
顶部