
设计模式
swordmanwk
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Singleton设计模式——《现代C++设计——泛型编程与设计模式》学习笔记
1.1 Singleton(单实例)如果我们觉得一个类只需要产生一个实例,我们就把它设计为Singleton(单实例模式)。Singleton是在我们项目中使用频率最高的一个模式,该模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。 Singleton是一种经过改进的全局变量,该模式的描述很简单,但实现却很复杂。特别是Singleton对象的生命周期管理是实现Singleton时最伤脑筋的地方。 本文将讨论以下几个主题:l 与单纯的全局对象相比,Singleton的特性l 用原创 2011-01-13 21:34:00 · 2053 阅读 · 0 评论 -
reactor设计模式
reactor设计模式,是一种基于事件驱动的设计模式。《Pattern-Oriented Software Architecture, Volume 2》对这个模式做了详细的讲解。这个模式的结构图如下:图中的handle对应的是操作系统提供的句柄,例如I/O句柄,Event_Handler类持有这些句柄,reactor类内部提供一个事件循环:handle_events(),事件循环的代码实现利用了操作系统提供的多路分离函数,WaitForMultipleObjects或者select等,这些多路分离的函数的原创 2011-01-31 16:46:00 · 46899 阅读 · 0 评论 -
《ACE程序员指南》中领导者与跟随者模式示例代码中的bug和解决方案
《ACE程序员指南》中线程池一章中提到了两个模式:一个是半同步半异步模式和领导者和跟随者模式,对于后者书中给出了一个示例程序,为了方便说明,我把示例代码贴在这里:#include "ace/config-lite.h"#if defined (ACE_HAS_THREADS)#include "ace/OS_NS_string.h"#include "ace/OS_NS_sys_time.h"#include "ace/Task.h"#include "ace/Containers.h"#include "原创 2011-02-08 12:42:00 · 2983 阅读 · 0 评论 -
使用适配器模式实现工作线程的应用程序框架
<br />考虑这样一个需求:当客户在终端数据导入界面选择需要导入的文件,点击导入后,终端会通过FTP上传导入的数据,如果上传文件很大很多,耗时很长,客户感觉会非常不好。主要是因为UI线程被阻塞,不再响应窗口消息,给客户的感觉终端像死掉一样,而客户也不知道上传文件的进度,所以希望终端提供进度条来显示上传的进度。<br />这是一个用户界面编程的经典问题,这个问题的一种解决方案是使用多线程,通过把FTP上传导入的工作委派给一个工作线程来处理,UI线程在调用函数启动工作线程后,自动返回。<br />工作线程在运原创 2011-04-30 10:55:00 · 1312 阅读 · 0 评论