- 博客(27)
- 资源 (1)
- 收藏
- 关注
转载 QT中关于信号与槽机制的实现原理
一:[每个对象]都有一个相应的纪录该对象的[元对象]关于元对象的类:QMetaObject类: /*******************生成元对象需要的输入参数*****************/ //类名 const char * const class_name, //父类名 QMetaObject *superclass,
2010-12-30 11:36:00
416
原创 hash定制类型
boost库之Hash<br />Hash<br /><br />我曾在很多C++书籍中看到作者们抱怨标准库中没有实现hash_set或hase_map,并非常自信地声称在下一个标准库中一定会增加这两个。我搜索的帮助文档后,很遗憾地没有发现相关库。难道C++的狂热爱好者把这么重要的库给忘记了吗?Boost.Functional/hash库引进了我的注意,遵循它的指引,我一步一步发发现的散列表的踪迹。<br /><br />hash <boost/functional/hash.hpp><br
2010-11-01 11:45:00
794
转载 UML类图关系全面剖析
<br />UML的类图关系分为: 关联、聚合/组合、依赖、泛化(继承)。而其中关联又分为双向关联、单向关联、自身关联;下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里。<br /><br />1、关联<br /><br /><br />双向关联:<br />C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。<br /><br />在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了
2010-06-18 15:29:00
375
转载 Composite(组合模式)
Composite(组合模式)一、功能 表示“部分-整体”关系,并使用户以一致的方式使用单个对象和组合对象。 二、结构图上图中,也可以做些扩展,根据需要可以将Leaf和Composite做为抽象基类,从中派生出子类来。 三、优缺点 优点:对于Composite模式,也许人们一开始的注意力会集中在它是如何实现组合对象的。但Compos
2010-05-20 17:02:00
352
转载 Factory Method(工厂方法模式)
Factory Method(工厂方法模式)一、功能 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。二、结构图三、实现(1)在某些情况下,比如仅仅为了创建适当的Product对象而派生新的Creator子类,并且创建不同Product的方法一致时,可以考虑用模板代替继承。
2010-05-20 17:01:00
337
转载 Adapter(适配器模式)
Adapter(适配器模式) 一、功能 将一个类的接口转换成客户希望的另外一个接口,解决两个已有接口之间不匹配的问题。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。二、结构图(1)class adapter(2)object ad
2010-05-20 17:01:00
347
转载 Prototype(原型模式)
Prototype(原型模式)一、功能 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 二、结构图三、优缺点 优点:复制自身。客户不知道需要对象的实际类型,只需知道它的抽象基类即可。(即有继承树的情况) 缺点:必须先有一个对象实例(即原型)才能clone。四、示例代码namespace Design
2010-05-20 17:00:00
242
转载 Builder(构建模式)
Builder(构建模式)一、功能 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 二、结构图各类之间的交互关系如下图所示: 三、示例代码namespace DesignPattern_Builder{class Product1 { /*...*/ } ;class Product
2010-05-20 16:59:00
250
转载 Bridge(桥接模式)
Bridge(桥接模式)一、功能 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 二、结构图三、示例代码 namespace DesignPattern_Bridge{// class Implementorclass Implementor{public:virtual void OperationImp()
2010-05-20 16:58:00
325
转载 Singleton (单例模式)
Singleton (单例模式)一、功能 保证一个类仅有一个实例。 二、结构图三、优缺点 Singleton模式是做为"全局变量"的替代品出现的。所以它具有全局变量的特点:全局可见、贯穿应用程序的整个生命期,它也具有全局变量不具备的性质:同类型的对象实例只可能有一个。四、实现 教科书上的Singleton定义如下:
2010-05-20 16:57:00
312
转载 Facade(外观)模式
Facade(外观)模式 一、简介Façade(外观)模式(有些人又称:门面模式)。GoF:为子系统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 二、学习Façade(外观)模式GoF定
2010-05-20 13:05:00
333
转载 Adapter(适配器)模式
Adapter(适配器)模式 一、简介Adapter(适配器)模式在有的文章中也叫包装器模式。GoF:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。这句话的意思可以精炼的简述为:我
2010-05-20 13:03:00
434
转载 Strategy(策略)模式
Strategy(策略)模式 GoF:定义一系列的算法,把他们一个一个封装起来,并且使他们可相互替换。本模式使得算法可独立于使用它的客户而变化。 比如说在我们的系统中需要对一个图形或一个艺术字上色(这样的系统在现实中是有的,我呆的前一家公司做的一个票据输出系统就有这样的功能)。假如我们需要各种颜色的
2010-05-20 13:02:00
457
转载 Bridge(桥)模式
Bridge(桥)模式 GoF:将抽象部分与它的实现部分分离,使它们都可以独立地变化。解释一下GoF的定义:就是指将抽象部分和实现部分分开,让它们各自随意增加减少。而不受其它约束。 下面引自《Thinking in Patterns with Java》:Brid
2010-05-20 13:02:00
453
转载 Abstract Factory(抽象工厂)模式
Abstract Factory(抽象工厂)模式 GoF:Abstract Factory模式的意图是“提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类”。 工厂模式有: 抽象工厂(Abstract Factory)、工厂方法(Factory Metho
2010-05-20 12:59:00
706
转载 Decorator(装饰)模式
Decorator(装饰)模式GoF:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator(装饰)模式相比生成子类更为灵活。在系统开发的过程中,我们希望给某个对象而不是整个类添加一些功能。例如:我们要做一扇门,现在为了能将门做的美观和安全需要给门加上锁和把手,还可能给门加上窗户和雕花。这里我们把这些要添加的东西叫做门的属
2010-05-20 12:57:00
296
转载 Singleton(单件)模式
Singleton(单件)模式 GoF:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 Singleton模式是比较简单的。 由于性能的原因,我可能不希望反复地实例化这些对象,然后又将它们销毁。而且,尽管我可以再开始时实例化所有可能的策略对象,但如果策略的数量变得
2010-05-20 12:56:00
432
转载 Observer(观察者)模式
Observer(观察者)模式 GoF:Observer模式的意图是“定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新”。 举个例子:一般在炒股票的时候人们总是紧盯着大盘的起伏涨跌。根据某支股票的涨跌来决定买进或抛出。而在整个交易中紧盯着
2010-05-20 12:53:00
613
原创 Template Method(模板方法)模式
Template Method(模板方法)模式 GOF:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可以重定义该算法的某些特定步骤。 继承是OO思想的三大特性(封装、继承、多态)之一。继承是为了更好的代码重
2010-05-20 12:52:00
320
原创 FactoryMethod(工厂方法)模式
FactoryMethod(工厂方法)模式 GOF:定义一个用于创建对象接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。 FactoryMethod模式应该和Abstract Factory模式一起学习的,为了遵循《设计模式精解》一书的
2010-05-20 12:51:00
419
原创 ACE观察者模式
#include #include #include //观察者模式测试class MyObserver : public ACE_Future_Observer{ virtual void update(const ACE_Future &future) { string value; future.get(val
2010-05-19 15:35:00
566
原创 反应器实现定时器
#include #include #include #include #ifdef _DEBUG#pragma comment(lib, "aceD.lib")#else#pragma comment(lib, "ace.lib")#endif BOOL g_bFlag = FALSE; //反应器实现定时器class MyTimerHa
2010-05-19 14:26:00
420
转载 STL算法描述
STL算法部分主要由头文件,,组成。要使用STL中的算法函数必须包含头文件,对于数值算法须包含,中则定义了一些模板类,用来声明函数对象。 STL中算法大致分为四类: 1、非可变序列算法:指不直接修改其所操作的容器内容的算法。 2、可变序列算法:指可以修改它们所操作的容器内容的算法。 3、排序算法:包
2010-05-05 17:15:00
990
原创 Active控件安全注册代码
HRESULT CreateComponentCategory(CATID catid, WCHAR* catDescription){ ICatRegister* pcr = NULL ; HRESULT hr = S_OK ; hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr,
2010-04-07 13:44:00
499
原创 打印机相关设置
1.设置打印机纸张以及横打竖打函数void SetPaper(short paperSize, BOOL bPrintType){ PRINTDLG pd; pd.lStructSize = (DWORD) sizeof(PRINTDLG); if (GetPrinterDeviceDefaults(&pd)) { // L
2010-04-07 13:28:00
809
原创 MFC打印问题
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Font
2010-04-07 13:26:00
668
1
原创 迭代器实现
#include using namespace std;//T为要装载的对象templateclass ListItem{private: T _value; ListItem* _next;public: T value() const { return _value; } ListItem *next()const { return _next; } void setValu
2010-04-06 19:59:00
307
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人