自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (10)
  • 收藏
  • 关注

原创 state 状态模式

意图: 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。结构:代码:abstract class State{public abstract void Handle(Context c...

2017-02-27 21:38:15 388

原创 软件设计原则

软件设计原则:1,单一职责原则 就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。在软件设计中,如果你能想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责,就应该考虑类的职责分离。细化归类...

2017-02-22 18:02:38 808

原创 mediator 中介者模式

意图:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。分析:在做软件设计时我们将一个系统分割成许多对象通常可以增加其可复用性,但是对象间相互连接的激增又会降低其可复用性。导致这种现象的原因是:大量的连接使得一个对象不可能在没有其他对象的支持下工作,系统表现为一个不可分割的整体,所以,对系统的...

2017-02-22 15:03:10 399

原创 visitor 访问者模式

意图:表示一个作用于某对象结构中的各元素的操作.它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。结构:代码:abstract class Visitor{public abstract void VisitConcreteElementA(ConcreteElementA elementA);public abstract void VisitCon...

2017-02-21 23:12:55 484

原创 Iterator 迭代器模式

意图:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。结构:代码:abstract class Iterator{public abstract object First();public abstract object Next();public abstract bool IsDone();public abstract object Cu...

2017-02-21 14:53:46 570

原创 模板方法模式 template method

意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。结构:代码:abstract class AbstractClass{ public abstract void PrimitiveOperation1(); public abstract void PrimitiveOpe...

2017-02-18 21:45:21 403

原创 解释器模式 interpreter

四人团意图:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单的语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。结构:代码:abstract class AbstractExpression{ pub...

2017-02-18 18:06:56 748

原创 职责链模式 chain of responsibility

意图:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递改请求,直到有一个对象处理它为止。结构:代码:class CHandler{public:void SetHandler(CHanlder * pH){ m_pHandler =pH; }virtual void HandleRequest(unsig...

2017-02-17 18:02:10 367

原创 享元模式 Flyweight

意图: 运用共享技术有效的支持大量细粒度的对象。结构:代码://Flyweight 可以接受并作用于外部状态abstract class Flyweight{public abstract void Operation(int extrinsicstate);}//为内部状态增加存储空间class ConcreteFlyweight: Flyweight{...

2017-02-17 14:23:50 385

原创 装饰模式 Decorator

意图: 动态的给一个对象增加一些额外的职责,就增加功能来说,decorator模式相比生成子类更为灵活。结构:CComponent 是定义一个对象的接口,可以给这些对象动态地添加职责。CConcreteComponent是定义了一个具体的对象,也可以给这个对象添加职责,Decorator装饰抽象类,继承了Component从外类来扩展Component类的功能,但对于CC...

2017-02-16 16:22:47 543

原创 组合模式 composite

意图: 将对象组合成树形结构以表示整体-部分的关系,composite使得用户对单个对象的使用和组合对象的使用具有一致性。结构:代码:class CComponent{public: virtual void Add(CComponent * pTmp); virtual void Remove(CComponent * pTmp); v...

2017-02-15 18:01:27 521

原创 桥接模式 Bridge

意图: 将抽象部分与它的实现部分分离,使得它们都可以独立的变化。结构: 上图结构中将抽象部分(CShape的子类型)与它的实现部分(画图程序)进行解耦,也就是让 将变化隔离开,仅仅是产生线性增加,那么桥接也就是分解。代码:class CShape{public: CShape(CShape* pd); virtual void...

2017-02-13 23:56:31 488

原创 原型模式 prototype

prototype(原型模式)意图: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。理解: 原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。 通过Clone()方法克隆(浅拷贝,深拷贝)返回一个对象或对象指针。例如先new一个简历对象,张三的简历,然后 可以通过张三简历对象调用Clone()方法产...

2017-02-11 15:28:57 608

原创 创建者 Builder

Builder 结构图:Builder(生成器,建造者): 将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。 例如:砸果汁(苹果汁,雪梨汁,草莓汁)从构建过程来说都是清洗水果->榨汁机砸压->调和(热水或者沙冰)果汁就完成。 经过不同的原料,相同的创建...

2017-02-08 16:59:29 421

原创 uml类图 泛化 实现 依赖 关联 聚合 复合

动物类为例说明:第一层代表类名,、如果类名是斜体则代表抽象类, 第二层表示成员函数, 第三层表示成员变量。‘+’表示public成员,‘-’表示private成员,‘#’表示protect成员。泛化关系(继承关系):指一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系,用空心三角...

2017-02-05 15:26:38 3021

xshell7 free for home/school

xshell7 free for home/school

2022-03-26

OpenResty 最佳实践

。由于之前一直混迹在 Python 圈子里面,也接触过 Nginx C 模块的高性能开发,一直想找到一个兼备 Python 快速 开发和 Nginx C 模块高性能的产品。看到 OpenResty 后,有发现新大陆的感觉。

2020-11-28

eBPF探索之旅-又拍云OpenTalk

BPF 基于寄存器虚拟机实现(支持 jit),实现了将过 滤包的逻辑移植到内核中: ① 用户态通过 BPF 接口将用户代码编译成字节码后, 尝试加载到BPF虚拟机中 ②内核校验用户的代码是否安全,如果安全,用户态 代码才能够在内核中运行

2020-11-28

mp4文件格式

mp4文件格式

2013-04-09

COM技术内幕

COM技术内幕

2013-03-25

响应鼠标按下和抬起

响应鼠标按下和抬起

2013-01-25

MFC窗口切换

MFC窗口切换

2013-01-25

socket阻塞与非阻塞

socket阻塞与非阻塞

2013-01-25

CFile操作

CFile操作详解

2012-11-22

空空如也

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

TA关注的人

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