- 博客(12)
- 收藏
- 关注
原创 c++设计模式之原型模式(prototype)
作用:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。Prototype模式提供了一个通过已存在对象进行新对象创建的接口(Clone), Clone()实现和具体的语言相关,在C++中通过拷贝构造函数实现。代码如下:#pragma once #includeusing namespace std;class Pro
2016-11-09 19:10:10 502
原创 c++ 设计模式之桥接模式(Bridge)
作用:将抽象部份与它的实现部份分离,使它们都可以独立地变化。将抽象(Abstraction)与实现(Implementation)分离,使得二者可以独立地变化。桥接模式号称设计模式中最难理解的模式之一,关键就是这个抽象和实现的分离非常让人奇怪,大部分人刚看到这个定义的时候都会认为实现就是继承自抽象,那怎么可能将他们分离呢。《大话设计模式》中就Bridge模式的解释:
2016-11-09 18:35:02 2434 1
原创 c++设计模式之组合模式(composite)
Composite组合模式作用:将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。UML图如下:在Component中声明所有用来管理子对象的方法,其中包括Add、Remove等,这样实现Component接口的所有子类都具备了Add和Remove。这样做的好处就是叶节点和枝节点对于外界没
2016-11-09 13:39:04 440
原创 c++设计模式之享元模式
Flyweight享元模式作用:运用共享技术有效地支持大量细粒度的对象。类图如下:内部状态intrinsic和外部状态extrinsic:1)Flyweight模式中,最重要的是将对象分解成intrinsic和extrinsic两部分。2)内部状态:在享元对象内部并且不会随环境改变而改变的共享部分,可以称为是享元对象的内部状态3)
2016-11-08 11:23:12 467
原创 c++ 设计模式之备忘录模式(Memento)
Memento模式作用:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态。Originator:负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可使用备忘录恢复内部状态。Originator可根据需要决定Memento存储Originator的哪些内部状态。Memento:
2016-11-07 16:58:51 505
原创 C++ 设计模式之中介者模式
Mediator中介者模式作用:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。类图:下面是代码实例:#include"stdafx.h"#include#includeusing namespace std;//class Mediator;class Colleage;
2016-11-07 14:18:09 366
原创 c++ 设计模式之适配器模式
Adapter适配器模式作用:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。分为类适配器模式和对象适配器模式。系统的数据和行为都正确,但接口不符时,我们应该考虑使用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。
2016-11-03 18:27:20 865
原创 C++ 设计模式之模板方法模式
1. 概述 定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。2. 模式中的角色 2.1 抽象类(AbstractClass):实现了模板方法,定义了算法的骨架。 2.2 具体类(ConcreteClass):实现抽象类中的抽象方法,已完成完整的算法。3 类图:
2016-11-03 14:54:29 323
原创 C++ 设计模式之建造者模式
作用:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。Builder模式和AbstractFactory模式在功能上很相似,因为都是用来创建大的复杂的对象,它们的区别是:Builder模式强调的是一步步创建对象,并通过相同的创建过程可以获得不同的结果对象,一般来说Builder模式中对象不是直接返回的。而在AbstractFactory模式中对象是直接返回
2016-11-02 16:51:53 361
原创 c++ 设计模式之外观模式
外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这个子系统更加容易使用#include "stdafx.h"#includeusing namespace std;class SubSystemOne{public: void MethodOne() { cout<<" this is system one "<<
2016-11-02 14:42:21 237
原创 设计模式之代理模式
Proxy代理模式作用:为其他对象提供一种代理以控制对这个对象的访问。代理的种类:如果按照使用目的来划分,代理有以下几种:远程(Remote)代理:为一个位于不同的地址空间的对象提供一个局域代表对象。这个不同的地址空间可以是在本机器中,也可是在另一台机器中。远程代理又叫做大使(Ambassador)。 也就是为一个对象在不同的地址空间提供局部代表。这
2016-11-02 13:49:01 264
原创 关于 CreateEvent 和WaitForMultipleObjects以及 WaitForSingleObject 等函数的使用实例
1 创建时间句柄:CreateEvent HANDLE H_Event[2]; HANDLE HSignal; H_Event[0] = ::CreateEvent(NULL,TRUE,FALSE,NULL); H_Event[1] = ::CreateEvent(NULL,FALSE,FALSE,NULL);HSignal = ::CreateEvent(NULL
2016-11-01 17:33:28 1641
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人