Chinaunix首页 | 论坛 | 博客
  • 博客访问: 36971
  • 博文数量: 10
  • 博客积分: 3180
  • 博客等级: 中校
  • 技术积分: 110
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-18 22:00
文章分类
文章存档

2011年(5)

2010年(5)

分类: C/C++

2011-08-14 21:11:46

单体,是指在整个应用中必须唯一存在的一类对象,比如全局的某个管理类等等。这是在应用程序中比较重要的一类应用,自己写很容易顾此失彼。ACE中提供了这种实现。非常实用,强大。

例子:
如果你有这样的应用,一个类要在整个应用程序中只有一个实例,那么ACE中的ACE_Singleton
就是再适合不过的实现方式了。
例如:一个类
class Ccscc_ifprocessor
{
public:
           Ccscc_ifprocessor();
           ~Ccscc_ifprocessor(); 
public:
             int fun1();
             int fun2();
};

在程序的任何一处:均可获得Ccscc_ifprocessor的唯一实例
Ccscc_ifprocessor* g_if =ACE_Singleton< Ccscc_ifprocessor , ACE_Recursive_Thread_Mutex >::instance();

当然了,也包括在在主程序中导入或静态链接入的DLL中,同样可获得这个类的唯一实例。但是这个DLL可能比提前于主程序卸载的话。就要使用ACE_Unmanaged_Singleton了。呵呵。

真是太棒了!!!
阅读(3927) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~