三种单例模式

来源:互联网 发布:现在流行的网络用词 编辑:程序博客网 时间:2024/05/24 08:32
/** * 一、懒汉单例模式 * @author xia * @优点:单例只有在使用的时候才会初始化化,在一定程度上节约了资源。  * @缺点:第一次加载时需要及时的进行初始化,反应稍微慢,最大的问题是每次调用getInstance 都是同步,造成了不必要的开销,一般不建议使用。  */public class AccountModule1 {    private static AccountModule1 module;    private AccountModule1(){}    public static synchronized AccountModule1 getmodule(){        if(module==null){            module = new AccountModule1();        }        return module;    }}
/** * 二、双重检查方式 * @author xia * @优点:既能够在需要的时候初始化单例,又能够保证线程安全。 并且单例对象初始化后调用getInstance不进行同步锁。  * @延迟加载方式  */public class AccountModule2 {    private static AccountModule2 module = null;    private AccountModule2(){}    public static AccountModule2 getmodule(){        if(module==null){             synchronized (AccountModule2.class) {                if(module==null){                    module = new AccountModule2();                }            }        }        return module;    }}
/** * 三、饿汉单例模式 * @author xia * @优点:单例只有在使用的时候才会初始化化,在一定程度上节约了资源。  * @预先加载方式  */public class AccountModule3 {    private static AccountModule3 module = new AccountModule3();    private AccountModule3(){}    public static AccountModule3 getmodule(){        return module;    }}
2 0
原创粉丝点击