一个类始终只能创建一个实例,则这个类被称为单例类
将类的构造器使用private修饰,从而将该类的构造器隐藏起来;
根据封装原则:提供一个public方法作为该类的访问点,用于创建该类对象,且该方法必须使用static修饰( 因调用该方法之前还不存在对象,只能是类);
提供一个静态成员变量,保存已创建过的对象;
class Singleton
{
//使用一个静态变量缓存创建过的实例
private static Singleton instance;
//隐藏构造器
private Singleton(){}
//提供一个静态方法,用于返回Singleton实例
public static Singleton getInstance(){
//如果instance为null,表明还没创建Singleton实例
//如果instance不为null,则已经创建Singleton实例
if(instance == null){
//创建一个Siingleton对象,并缓存起来
instance = new Singleton();
}
return instance;
}
}
public class SingletonTest{
public static void main(String[] args){
//创建Singleton对象不能通过构造器
//只能通过getInstance静态方法获取
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
//输出 true
System.out.println(s1 == s2);
}
}
本文介绍了单例模式的基本概念,展示了如何通过隐藏构造器并提供静态方法来确保一个类只有一个实例。通过具体的Java代码示例解释了单例模式的实现方式。
1777

被折叠的 条评论
为什么被折叠?



