c#设计模式实例
关于设计模式的书籍和资料已经有很多了, 本文不重复的去探讨设计模式的理论知识,主要探讨在C#中使用设计模式的方案选择和实现细节,适合设计模式初学者阅读。对于对设计模式有一定了解的开发人员建议阅读《C#设计模式》一书。本文下面将讲述单件模式的应用。
简介
单件模式是设计模式中最简单也是最常用的模式之一。在开发的过程中我们也经常需要用到单件模式。在C语言时代,我们通过全局变量来实现对唯一数据的访问,但是这种方式并不能保证数据的唯一性。之后人们在面向对象编程中使用设计模式,并提出了单件这种概念。那么在.net框架下面是如何来实现单件模式的呢?通常的情况下是使用静态控制符(static)来实现的。下面我将用三个例子来说明单件模式,并且说明这三个例子各自的优点和缺点。
经典的单件模式
/// <summary>上面这个例子是比较经典的单件模式例子,通过类自身的访问控制来实现应用程序全局只有一个实例对象。这种方式比较简单,并且足以满足在单线程模式下的单件模式现实,然而这种方式在多线程情景下会是什么样子呢?存在被多次实例话的可能,由于在Instance接口中没有进行访问保护,当两个线程同时请求Instance时,接口就会返回两个classSingleton实例。
/// 使用sealed,类不能被继承
/// </summary>
public sealed class classSingleton
{
static private classSingleton _instance = null;
/// <summary>
/// 阻止被new操作符实例化
/// </summary>
private classSingleton()
{
}
/// <summary>
/// 获取实例接口
/// </summary>
static public classSingleton Instance
{
get
{
return (null == _instance) ? new classSingleton() : _instance;
}
}
}
0
相关文章