黑马程序员7--单例设计模式

来源:互联网 发布:电话变声软件 编辑:程序博客网 时间:2024/06/06 01:39

单例设计模式

------- android培训、java培训、期待与您交流! ----------

//饿汉式,先初始化对象
//Single类一进内存,就已经创建好了对象
class Single
{
    private static Single s = new Single();
    private Single(){}

    public static Single getInstance()
    {
        return s;
    }
}

示意图:
黑马程序员--单例设计模式 - leon_hm - Leon的博客

//懒汉式,方法被调用时才创建对象,也叫做对象的延时加载。
//Single类进内存,对象还没有存在,只有调用了getInstance方法时,才建立对象
class Single
{
    private static Single s=null;
    private Single(){}
    
    public static Single getInstance()
    {
        if(s==null)//此处加判定,减少同步锁的判定
        {    
            synchronized(Single.class){
                if(s==null)//多加一次判定,防止两个线程同时相继进入,创建多个对象
                {
                    s=new Single();
                }
            }
        }
        return s;
    }
}


示意图:
黑马程序员--单例设计模式 - leon_hm - Leon的博客

1.饿汉式线程安全,优先考虑使用饿汉式
2.对于只允许同一时间只运行一个的程序,使用单例模式实现。
0 0
原创粉丝点击