自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++六大部件

容器用以存储数据结构;算法通过迭代器操作容器;分配器用以管理代码相关内存;适配器的原理是适配器模式,将已有的接口转换成我们需要的接口;仿函数重写operator() 运算符,使类可以像函数一样使用。

2021-07-29 11:23:56 342

转载 解释器模式

解释器(Interpreter)模式的定义:给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子。也就是说,用编译语言的方式来分析应用中的实例。这种模式实现了文法表达式处理的接口,该接口解释一个特定的上下文。

2021-07-28 16:36:40 69

转载 访问者模式

访问者(Visitor)模式的定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离,是行为类模式中最复杂的一种模式。

2021-07-28 16:04:18 79

转载 设计模式-命令模式

命令(Command)模式的定义如下:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。

2021-07-28 15:00:59 106

转载 责任链模式

责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。

2021-07-28 10:57:49 79

转载 迭代器模式

迭代器(Iterator)模式的定义:提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。

2021-07-28 10:26:14 93

转载 设计模式-组合模式

组合(Composite Pattern)模式的定义:有时又叫作整体-部分(Part-Whole)模式,它是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性,属于结构型设计模式。由上图可以看出,其实根节点和树枝节点本质上属于同一种数据类型,可以作为容器使用;而叶子节点与树枝节点在语义上不属于用一种类型。但是在组合模式中,会把树枝节点和叶子节点看作属于同一种数据类型(用统一接口定义),让它们具备一致行为。

2021-07-28 09:36:31 80

转载 备忘录模式

备忘录(Memento)模式的定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式。

2021-07-28 09:01:31 83

转载 设计模式-状态模式

状态(State)模式的定义:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。

2021-07-28 08:30:39 155

转载 中介者模式

中介者(Mediator)模式的定义:定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式,它是迪米特法则的典型应用。

2021-07-27 15:28:48 65

转载 适配器模式

适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些(一个是继承,一个是组合)。

2021-07-27 14:39:52 200

转载 设计模式-代理模式

转载:代理模式 - C语言中文网代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。使用代理模式主要有两个目的:一是保护目标对象,二是增强目标对象。代理模式的主要角色如下。抽象主题(Subject)类:通过接口或抽象类声明真实主题和代理对象实现的业务方法。真实主题(Real Subject)类:实现了抽象主题中的具体业务,是代理对象所代表的真实对象,是最终要引用的对象。代理(Prox

2021-07-27 10:57:56 125

转载 设计模式-外观模式

外观(Facade)模式又叫作门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。

2021-07-27 10:26:21 103

转载 设计模式-享元模式

享元(Flyweight)模式的定义:运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。

2021-07-27 09:12:21 122

转载 设计模式-单例模式

单例模式是设计模式中最简单的模式之一。通常,普通类的构造函数是公有的,外部类可以通过“new 构造函数()”来生成多个实例。但是,如果将类的构造函数设为私有的,外部类就无法调用该构造函数,也就无法生成多个实例。这时该类自身必须定义一个静态私有实例,并向外提供一个静态的公有函数用于创建或获取该静态私有实例。

2021-07-26 17:09:02 77

转载 设计模式-构造型模式

建造者(Builder)模式的定义:将一个复杂对象的构建与其表示相分离,使得同样的构建过程(稳定)可以创建不同的表示(变化)。Builder 模式主要用于“分步骤构建一个复杂的对象”。在这其中“分步骤”是一个稳定的算法,而复杂对象的各个部分则经常变化。

2021-07-26 15:49:41 255

转载 设计模式-原型模型

原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。引入原型模式的本质在于利用已有的一个原型对象, 快速的生成和原型对象一样的实例。当实现深克隆时,需要编写较为复杂的代码,而且当对象之间存在多重嵌套引用时,为了实现深克隆,每一层对象对应的类都必须支持深克隆,实现起来会比较麻烦。因此,深克隆、浅克隆需要运用得当。

2021-07-26 09:46:26 141

转载 设计模式-抽象工厂

抽象工厂(AbstractFactory)模式的定义:是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。

2021-07-26 08:52:48 67

转载 设计模式-工厂方法

工厂方法定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。工厂方法目的:使创建对象和使用对象分离。

2021-07-25 17:02:30 134

原创 设计模式:桥接模式

桥接(Bridge)模式的定义如下:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。Bridge模式有时候类似于多继承方案,但是多继承方案往往违背单一职责原则(即一个类只有一个变化的原因),复用性比较差。Bridge模式是比多继承方案更好的解决方法。

2021-07-25 11:26:05 196

转载 装饰器模式

使用组合关系来创建一个包装对象(即装饰对象)来包裹真实对象,并在保持真实对象的类结构不变的前提下,为其提供额外的功能,这就是装饰器模式的目标

2021-07-25 09:46:52 162

原创 观察者模式

观察者模式又名发布订阅模式。 定义对象间的一种一对多的依赖关系, 当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。

2021-07-24 17:30:21 163

原创 设计模式:策略模式

策略模式:定义一系列的算法, 把他们一个个封装起来, 并且使它们可相互替换。 Strategy模式使算法可独立于使用它的客户而变化。策略模式与模版模式的区别:模版模式就是算法在父类中, 子类不会完全改写算法, 可以改写部分, 或称关键部分, 但整体的算法不变, 可以节省大量代码。 策略模式所有的算法均在子类中完成, 强调行为即算法的不同, 可以使程序更灵活。

2021-07-24 15:32:23 169

原创 设计模式:模板方法

模板方法模式把我们不知道具体实现的步聚封装成抽象方法,提供一些按正确顺序调用它们的具体方法(这些具体方法统称为模板方法), 这样构成一个抽象基类。 子类通过继承这个抽象基类去实现各个步聚的抽象方法, 而工作流程却由父类来控制。模板方法定义一个操作中的算法的骨架 (稳定),而将一些步骤延迟(变化)到子类中。 Template Method使得子类可以不改变(复用)一个算法的结构即可重定义(override 重写)该算法的某些特定步骤。

2021-07-24 10:31:01 100

原创 面向对象的设计原则

面向对象的概念;面向对象的设计原则是设计模式的基础;面向对象的设计原则罗列。

2021-07-23 15:39:45 170

原创 设计模式:分解与抽象

分解:人们面对复杂性有一个常见的做法:即分而治之,将大问题分解为多个小问题,将复杂问题分解为多个简单问题。抽象:更高层次来讲,人们处理复杂性有一个通用的技术,即抽象。由于不能掌握全部的复杂对象,我们选择忽视它的非本质细节而去处理泛化和理想化了的对象模型。总结为一句话:用分解来分割任务(解耦合),用抽象来提高复用性对抗变化(高复用),减少工作量。总目标就是为了能复用。

2021-07-23 11:28:10 979

原创 ebpf指令系统

了解ebpf的指令系统。阅读一个使用ebpf指令集编程的示例。

2021-07-21 17:31:42 1156

原创 设备驱动Demo

简述计算机组成原理中的I/O设备,理解设备与驱动的关系。没有介绍设备驱动模型的抽象(我不知道),给出了参考链接,可自行阅读。贴出了字符驱动和块设备驱动的示例代码。

2021-07-14 12:06:12 704

原创 内核同步示例

内核同步示例代码。里面使用了:原子操作,自旋锁,信号量,(工作队列,定时器)

2021-07-09 15:30:00 143

原创 linux文件系统

了解操作系统中,文件系统的结构。了解虚拟文件系统中相关的数据结构。给系统添加一个简易的自定义的文件系统。

2021-07-07 17:59:27 196

空空如也

空空如也

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

TA关注的人

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