定义
保证一个类仅有一个实例,并提供一个访问它的全局访问点。 通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的惟一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。
代码
class Singleton
{
private static Singleton instance;
private Singleton() //构造方法让其
private,这就堵死了外界利用
new创建此类实例的可能
{ }
public static Singleton
GetInstance() //此方法是获得本类实例的唯一全局访问点
{
if (instance==
null)
{
instance =
new Singleton();
}
return instance;
}
}
优点:单例模式因为Singleton类封装它的唯一实例,这样它可以严格地控制客户怎样访问它以及何时访问它。简单地说就是对唯一实例的受控访问。 注意:多线程程序中,多个线程同时访问Singleton类,调用GetInstance()方法,会有可能创建多个实例。我们可以通过给进程加锁来处理。