Java学习笔记一单例类Singleton

如果一个类始终只能创建一个实例,则这个类被称为单例类。为了避免其他类自由创建该类的实例,应该把该类的构造器使用private修饰,从而把该类的所有构造器隐藏起来。一旦把该类的构造器隐藏起来,就需要提供一个public方法作为该类的访问点,用于创建该类的对象,且该方法必须使用static修饰(因为调用该方法之前还不存在对象,因此调用该方法的不可能是对象,只能是类)。
除此之外,该类还必须缓存已经创建的对象,否则该类无法知道是否曾经创建过对象,也就无法保证只创建一个对象。为此该类需要使用一个成员变量来保存曾经创建的对象,因此该成员变量需要被上面的静态方法访问,故该成员变量必须使用static修饰。

class Singleton
{
	// 使用一个类变量来缓存曾经创建的实例
	private static Singleton instance;
	// 对构造器使用private修饰,隐藏该构造器
	private Singleton(){}
	// 提供一个静态方法,用于返回Singleton对象,该方法可以加入自定义控制,保证只产生一个对象
	public static Singleton getInstance()
	{
		// 如果instance为null,则表明还不曾创建Singleton对象
		if(instance == null){
			instance = new Singleton();
		}
		return instance;
	}
	
}
发布了134 篇原创文章 · 获赞 141 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/asmartkiller/article/details/104849876
今日推荐