设计模式之-----单件(singleton)
using System;
namespace CSDesingPattern
{
class Singleton
{
private static Singleton mInstance;
private int x = 0;
private Singleton(){}
public static Singleton GetObject()
{
if (mInstance == null)
mInstance = new Singleton();
return mInstance;
}
public void SetX(int newVal)
{
x = newVal;
}
public int GetX()
{
return x;
}
static void Main(string[] args)
{
int val;
Singleton s1 = Singleton.GetObject();
Singleton s2 = Singleton.GetObject();
Console.WriteLine("将Singleton对象中的X设置为10");
s1.SetX(10);
val = s2.GetX();
Console.WriteLine("使用第二个Singleton变量读取X的值 x={0}", val);
Console.ReadLine();
}
}
}
- 设计要求:
定义静态成员(指示自身类)
private static Singleton mInstance;
定义静态创建函数:
public static Singleton GetObject()
{
if (mInstance == null)
mInstance = new Singleton();
return mInstance;
}
用处:保持一个或固定个数的实例:如Asp.Net里的Application