您的位置:首页 > 职场人生

一天一个设计模式之单例模式(singleton)

2010-08-08 21:05 197 查看
单例模式,其实这个模式运用时相当广泛的,如果仁兄你可能不懂设计模式,但是你的代码中却可能用过单例模式。单例模式的关键点就在单。从某些方面来说,我们可以把常量看过一种单例模式,即单例模式只有一个实例,每次引用都是相同的对象。

在GOF中,单例模式是创建型模型,对于单例模式,我们一般基于一个全局变量来实现:

public class People        //类名
{
private static string name;    //字段

private People() //构造函数
{

}

public static string GetName()    // 函数
{
if (string.IsNullOrEmpty(name))
{
name = "my name";
}
return name;

}

}

在上述代码中我们通过一个static变量和私有构造函数来保证我们通过GetName函数取的值是同一个字符串。

String类型虽然是值类型的,但是只不过是将原本引用类型的string经过特殊处理让他具备值类型的特点而已,在这里我们依然将其当做引用类型。

另外,单例模式和享元模式是不同的:

享元模式是结构型模式,单例模式是创建型模式

单例模式是保证对象的唯一的实例,而享元模式是让每个轻量级的对象在内存中只有一个,实现过程中主要是要为共享对象提供一个存放的“仓库”(对象池)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息