黑马程序员技术交流社区

标题: 单例设计模式总金额 [打印本页]

作者: 王训印    时间: 2015-7-21 20:48
标题: 单例设计模式总金额
单例模式代码3步骤:1.将构造方法私有化。 2.在类中创建一个本类对象。 3.提供一个方法可以获取该类对象。

单例模式分三种:懒汉式单例、饿汉式单例、登记式单例,我主要比较饿汉式与懒汉式的区别:从线程安全角度来说,赖汉时线程不安全,恶汉式线程安全。下面把懒汉式改成线程安全。


饿汉式关键代码:  
public class Singal
{  
    //将构造方法私有化
    private Singal() {}  
    //在类中创建一个本类对象
    private static  Singal single = new Singal();  
    //提供一个方法可以获取该类对象  
    public static Singal getInstance()
    {  
        return single;  
    }  
}   

懒汉式单例代码:
public class Singal {  
       
        private static Singal single=null;  
    private Singleton() {}  
    public static Singal getInstance() {  
         if (single == null) {   
             single = new Singal();  
         }   
        return single;  
    }  
}  

懒汉式线程安全代码:
public class Singal
{  
    private static Singal single=null;  
    private Singleton() {}  
    public static Singal getInstance()
    {   
        if(singal == null)
        {
                synchronized(Singal.class)
                if(singal == null)
                {
                        singal = new Singal;
                }
        }
    }  
}  







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2