什么是单例模式(singleton)?即一个类只会生成唯一的一个对象/实例.
为了保证每个类只能生成一个对象,要用到private的构造方法,即别的类中不能new这个单例类。
既然构造方法是private的,只能在这个单例类中先生成一个对象和一个public get..{return...}方法,然后再让别的类调用这个方法,并且只能使用类名.方法的方式调用(私有构造方法的存在使其不能new一个新的对象),所以上面那个方法必须还是static的。
在单例模式中,Singleton这个类只在其自己的内部new了一下,只是生成了一个对象,在别的类里面不能通过new的方式生成新的对象,从而保证了它只能有一个对象。
public class SingletonTest { public static void main(String[] args) { Singleton singleton = Singleton.getInstance(); Singleton singleton2 = Singleton.getInstance(); System.out.println( singleton == singleton2 ); } } class Singleton { private static Singleton singleton = new Singleton(); private Singleton() { } public static Singleton getInstance() { return singleton; } }