1、如果一个类,始终只能创建一个实例,那么这个类就叫做单例类。
我们把该类的构造器使用private修饰,从而把该类的所有构造器隐藏起来。
根据良好的封装原则,一旦把该类的构造器隐藏起来,就需要提供一个public方法作为该类的访问点,用于创建该类的对象,且该方法必须用static修饰(调用该方法的只能是类)。
还有,该类还必须缓存自己创建的对象,否则该类不会知道是否已经创建了该对象,也就无法保证只创建一个对象,因此需要创建一个属性来保存曾经创建的对象。该属性需要
被上面的static访问,所以也要用static修饰。
/*
* 单例类
* */
public class SingleSton {
// 保存已创建对象的属性
private static SingleSton singleSton;
// 使用private修饰构造方法
private SingleSton(){};
// public方法,用于返回唯一的对象
public static SingleSton getInstance() {
if (singleSton==null) {
// 创建一个对象,并将其缓存起来
singleSton=new SingleSton();
}
return singleSton;
}
}
public class SingleStonTest {
public static void main(String[] args) {
SingleSton s1=SingleSton.getInstance();
SingleSton s2=SingleSton.getInstance();
System.out.println(s1==s2);
}
}