什么是单例?
什么是单例?
什么是单例?
2015-08-22
单例模式
就是全局只能有一个对象实例
比如
public class Singleton{ private static Singleton singleton = null; private Singleton(){} public static Singleton getInstance(){ if(singleton == null){ singleton = new Singleton(); } return singleton; } }
你可以看到,Singleton类的构造函数是私有的,所以你无法在外面new出Singleton对象。只能通过静态方法getInstance获得。这个静态方法会返回内部私有的Singleton对象的实例,并且会检查当前这个实例是否已经创建,创建了就直接返回,没有创建就创建一个返回。这就保证了,Singleton类的对象实例只能有一个。
当然这是最简单的写法,在多线程的情况下是不能正常运行的,需要Synchronized同步
举报