![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式相关
文章平均质量分 63
lclflash
这个作者很懒,什么都没留下…
展开
-
工厂模式的模板实现
转载请注明:http://blog.csdn.net/lclflash源码面前了无秘密#ifndef _ELEMENTFACTORY_H_#define _ELEMENTFACTORY_H_#include #include class IElement;class IElementCreator{public: virtual IElement* create()原创 2013-04-27 14:05:59 · 711 阅读 · 0 评论 -
简单单体模板类的实现(非线程安全)
直接上代码#ifndef _SINGLETON_H_#define _SINGLETON_H_template class CSingleton{public: static T *instance() { static T *_instance = NULL; if (_instance == NULL) _instance = new原创 2013-04-27 20:54:06 · 668 阅读 · 0 评论 -
侃中介者模式(Mediator)
侃中介者模式作用: 用一个中介对象来封装一系列的对象操作。中介者使各对象不需要显式地相互交互,从而使其耦合松散,而且可以独立地改变它们之间的交互。正文: 中介者模式是一个简单易用的模式。也许很多人在实际的项目中都已经用到过了,只是不知道它就是中介者模式。它把多对多的交互变成了一对多的交互,从而简化的交互,理清了思路。 让我们来看个例子。转载 2013-04-27 21:01:42 · 538 阅读 · 0 评论 -
消息映射深度探索(3):使用宏简化操作
转自:http://blog.csdn.net/hjsunj/article/details/2028597消息映射网的建立可以用宏定义出来,以简化派生类的操作:#include #include #include #define PRINT( msg ) { std::cout #define FUNC( func ) void func() { PRINT( #转载 2013-04-27 20:57:45 · 575 阅读 · 0 评论 -
消息映射深度探索(2):MFC的做法 - 使用消息映射表
转自:http://blog.csdn.net/hjsunj/article/details/2028597在MFC被成功做出来之前,一个最简单的想法就是使用虚函数,为每个消息定制一个虚函数,下面是个可能的实现:#include #include #include #define PRINT( msg ) { std::cout #define FUNC( func转载 2013-04-27 20:56:53 · 541 阅读 · 0 评论 -
消息映射深度探索(1):基础面
转自:http://blog.csdn.net/hjsunj/article/details/2028597消息映射这项技术,给消息横向(多个类对象)或纵向(继承树)流动的机会。此技术最初之发展动机是为了简化win32程序的消息处理过程,后来也被应用到网络程序的消息处理。一旦某个消息到达win32消息处理函数,此函数就会 使用一个switch...case映射网将此消息映射至相应处理函转载 2013-04-27 20:56:02 · 516 阅读 · 0 评论 -
以查找表取代switch...case
转自:http://blog.csdn.net/hjsunj/article/details/2028597传统的以多态取代switch...caseMartin Flower的著作《重构》告诉我们应该以多态取代switch...case,比如一个经典的Shape绘图的例子:void Draw( Shape* shape ) { switch( shape.type转载 2013-04-27 19:53:39 · 877 阅读 · 0 评论 -
工厂方法(Factory Method)之追根究底
转自:http://blog.csdn.net/hjsunj/article/details/2028597 简介工厂方法,通常又被称作虚构造函数,给一个ID,就可以产出一个对象。了解设计模式的人都知道这样一份臭名昭著的实现:// ----------------------------------------------------------------------转载 2013-04-27 19:51:44 · 538 阅读 · 0 评论 -
消息映射深度探索(5):总结
转自:http://blog.csdn.net/hjsunj/article/details/2028597孰优孰劣上面我们讨论了实现消息映射的两种方案:1. 使用消息映射表2. 使用虚函数在效率上我们可以看出前者胜出,内存使用上后者胜出(前提是后者不使用查找表替换switch...case)。所以看其来大家各有优劣。使用消息映射表必然要使用宏,除非事先转载 2013-04-27 20:58:52 · 485 阅读 · 0 评论 -
消息映射深度探索(4):职责链模式 - 使用虚函数替换映射表
转自:http://blog.csdn.net/hjsunj/article/details/2028597下面我们将介绍另一种实现消息映射的方式:职责链模式#include #include #include #define PRINT( msg ) { std::cout #define FUNC( func ) void func() { PRINT( #fu转载 2013-04-27 20:58:17 · 623 阅读 · 0 评论 -
qt 实现单例
头文件:class ConnectionManager { public: static ConnectionManager *instance();};实现文件:Q_GLOBAL_STATIC(ConnectionManager, connectionManager) ConnectionManager *ConnectionManager::instan转载 2014-02-11 09:12:03 · 1270 阅读 · 0 评论