单体,是指在整个应用中必须唯一存在的一类对象,比如全局的某个管理类等等。这是在应用程序中比较重要的一类应用,自己写很容易顾此失彼。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) |