李兰溪的专栏

君子生非异也,善假于物也

Qt实现数字音频均衡器[文末附代码]

Qt实现数字音频均衡器 在实现音频播放器的时候,我们常常需要一个均衡器来调节各个频段的增益,就是我们平常说的调重低音。一个数字均衡器的架构通常都如图所示: 从图中可以看到,这里的数字均衡器实际上就是三个滤波器,各个滤波器分别负责不同频段的音频调节,这三个滤波器叫做滤波器组。当然一个数字滤波...

2018-12-16 22:49:31

阅读数 423

评论数 0

重构手法之重新组织函数

重构手法之重新组织函数 在重构的手法中,很大的一部分是对函数进行整理,使函数能够恰当地包装代码(让代码自己说话而不是写更多的注释)。重新组织函数的驱动力,往往都是由于函数过长。因为函数过长就以为着包含了更多属性和逻辑,这样复杂的逻辑和诸多属性(如函数内部的局部变量或者静态变量等)会让代码变得难...

2016-08-05 13:54:42

阅读数 217

评论数 0

C++设计模式之装饰模式

C++设计模式之装饰模式 动态地给一个对象增加一些额外的职责,就增加对象的功能来说,装饰模式比生成子类更为灵活。装饰模式是一种对象结构模式。 一、缘由我们常常通过继承的方式来对一个既有的类进行功能添加,但继承方式有显著的局限性,因为 继承具有侵入性 继承是一种is a的关系,具有强耦合性,难以...

2016-03-06 17:00:53

阅读数 741

评论数 0

C++设计模式之组合模式

C++设计模式之组合模式 组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。 C设计模式之组合模式 一缘由 二实现 三实例代码 一、缘由在自然界中常常存在着许多树形关系,例如公司的结构,有子公司,部门。又如文件系统的结构,目录下...

2016-03-05 23:42:22

阅读数 669

评论数 0

C++设计模式之桥接模式

C++ 设计模式之桥接模式 将抽象部份与它的实现部份分离,使它们都可以独立地变化。 C 设计模式之桥接模式 一缘由 二实现 三代码 四总结 一、缘由假设现在需要大、中、小、三种型号的画笔来绘制7种不同的颜色,如果使用蜡笔,就需要准备 3*7 = 21支蜡笔。而如果使用毛笔,则只需要3支毛笔和7...

2016-03-05 21:58:04

阅读数 611

评论数 0

C++设计模式之适配器模式

C++设计模式之适配器模式 将一个接口转换成客户希望的另一个接口使得接口不兼容的那些类可以一起工作 C设计模式之适配器模式 一缘由 二实现 三示例代码一、缘由适配器模式是我个人使用频率比较高的模式,十分简单实用。在许多情况下,我们自己的系统A,要使用既有对象B的接口,但无奈我们的既有系统A和B...

2016-03-05 15:13:52

阅读数 540

评论数 0

C++设计模式之建造者模式

C++设计模式之建造者模式 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 C设计模式之建造者模式 一缘由 二实现 三代码分析 四总结 一、缘由当我们在构造一个窗口控件的时候,往往包含三个方面的初始化工作: UI初始化 动画初始化 信号槽初始化 这样我们就可以构造好...

2016-03-05 03:02:07

阅读数 501

评论数 0

C++设计模式之原型模式

C++设计模式之原型模式 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 C设计模式之原型模式 一缘由 二实现 三代码分析 一、缘由在许多环境下,我们需要从一个A对象生成一个B对象以减小A和B对象的重复代码,例如创建100个只有名字不同而其它信息都相同的Person类实例,这样...

2016-03-04 21:22:45

阅读数 364

评论数 0

C++设计模式之抽象工厂模式

C++设计模式之抽象工厂模式C设计模式之抽象工厂模式 一缘由 二实现 三代码分析 四总结一、缘由在《C++设计模式之工厂方法模式》一文中我们提到,由于简单工厂模式当中的工厂类职责过重,严重违反了单一职责的原则,导致系统扩展十分困难,于是引出了工厂方法模式,工厂方法模式引入抽象的工厂类,具体的创建工...

2016-03-03 17:08:20

阅读数 432

评论数 0

C++设计模式之工厂方法模式

C++设计模式之工厂方法模式C设计模式之工厂方法模式 一使用情景 二实现 三代码分析 五总结一、使用情景简单工厂模式运用十分简便,但是正如《简单工厂模式》一文中所说的,简单工厂模式具有一个致命的缺点:拓展困难,只要增加新的具体类,就需要对工厂类进行修改,这一点严重违反了开闭原则。我们在思索如何能够...

2016-03-03 15:30:26

阅读数 388

评论数 0

C++设计模式之简单工厂模式

C++ 设计模式之简单工厂模式C 设计模式之简单工厂模式 一使用情景 二实现 三代码分析 五总结一、使用情景在许多情况下,我们需要创建一系列的类的实例,并且这些实例的创建过程都十分繁琐,这时候我们可以将这些类的创建过程都封装到一个工厂类中,由工厂类进行创建,从而屏蔽了创建的细节。 简单工厂的定义...

2016-03-03 00:28:32

阅读数 450

评论数 0

设计模式之初识UML图

C++设计模式之初识UML图C设计模式之初识UML图 继承 实现 依赖 关联 一般关联 聚合关联 组合关联 继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系 实现指的是一个class类实现了...

2016-03-02 20:05:13

阅读数 508

评论数 1

单一职责和里氏替换

单一职责和里氏替换单一职责和里氏替换 一单一职责原则 1 原则解读 2 例1 3 例2 二里氏替换原则 1 原则解读一、单一职责原则1.1 原则解读 原则定义:应该有且仅有一个原因引起类的变更,也可以说成是一个类只负责一件事情。 该原则要求类的职责明确清晰,这样符合该原则的设计有如下好处: 由...

2016-03-02 09:34:16

阅读数 309

评论数 0

Effective Cpp 条例解析

Effective 条例解析Effective 条例解析 一 让自己习惯C 1 视C为一个语言联邦 2 尽量以constenuminline 替换define 3 尽可能使用const 4 确保对象在使用前已经被初始化 二构造析构赋值运算 1 了解C默默编写并调用哪些函数 2 如果不想使用编译器提...

2016-01-07 23:33:17

阅读数 512

评论数 0

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