本文共 1938 字,大约阅读时间需要 6 分钟。
什么是单例模式
因进程需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计。单例模式的特点
1、单例模式只能有一个实例。 2、单例类必须创建自己的唯一实例 3、单例类必须向其他对象提供这一实例。单例模式的实现
public class SingletonDemo { private static SingletonDemo instance; private SingletonDemo(){ } public static SingletonDemo getInstance(){ if(instance==null){ instance=new SingletonDemo(); } return instance; }}
public class SingletonDemo { private static SingletonDemo instance; private SingletonDemo(){ } public static synchronized SingletonDemo getInstance(){ if(instance==null){ instance=new SingletonDemo(); } return instance; }}
这种模式在多线程的时候效率比较低,生产上不推荐.
public class SingletonDemo { private static SingletonDemo instance=new SingletonDemo(); private SingletonDemo(){ } public static SingletonDemo getInstance(){ return instance; }}
public class SingletonDemo { private static class SingletonHolder{ private static SingletonDemo instance=new SingletonDemo(); } private SingletonDemo(){ System.out.println("Singleton has loaded"); } public static SingletonDemo getInstance(){ return SingletonHolder.instance; }}
enum SingletonDemo{ INSTANCE; public void otherMethods(){ System.out.println("Something"); }}
public class SingletonDemo { private static SingletonDemo instance; private SingletonDemo(){ System.out.println("Singleton has loaded"); } public static SingletonDemo getInstance(){ if(instance==null){ synchronized (SingletonDemo.class){ if(instance==null){ instance=new SingletonDemo(); } } } return instance; }}
转载地址:http://fkjkb.baihongyu.com/