新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > 开发语言 > C++ > 正文:实例编程 C++ c# 分别实现单件模式

实例编程 C++ c# 分别实现单件模式

新客网 XKER.COM 2008-04-22 来源:博客园 收藏本文
C#
1)

public sealed class Singleton
{
static Singleton instance = null;
private Singleton()
{
}
public static Singleton Instance
{
get
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
}
2) 线程安全

public sealed class Singleton
{
static Singleton instance = null;
static readonly object lockObj = new object();
private Singleton()
{
}
public static Singleton Instance
{
get
{
lock (lockObj)
{
if (instance == null)
{
instance = new Singleton();
}
}
return instance;
}
}
}

C++:

1)
class Singleton
{
public:
static Singleton * Instance()
{
if( 0== _instance)
{
_instance = new Singleton;
}
return _instance;
}

protected:
Singleton(){}
virtual ~Singleton(void){}
static Singleton* _instance;
};

2) 利用智能指针进行垃圾回收

class Singleton
{
public:
~Singleton(){}

static Singleton* Instance()
{
if(!pInstance.get())
{
pInstance = std::auto_ptr(new Singleton());
}
return pInstance.get();
}
protected:
Singleton(){}
private:
static std::auto_ptr pInstance;
};
3) 线程安全

收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐