设计模式专栏
简介:
单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。
一、饿汉式
private static final CEO ceo=new CEO();
private CEO(){
}
public static CEO getCeo(){
return ceo;
}
二、懒汉式
/**
* 懒汉CEO,方法是加锁的,所以耗时比较严重
*/
public class LHCEO {
private static LHCEO instance;
private LHCEO(){
}
public static synchronized LHCEO getInstance(){
if (instance==null){
instance=new LHCEO();
}
return instance;
}
}
三、DCL实现单例
private static LASTCEO instance=null;
private LASTCEO(){
}
public static LASTCEO getInstance(){
if (instance==null){
synchronized (LASTCEO.class) {
if (instance==null)
instance = new LASTCEO();
}
}
return instance;
}
三、优缺点比较
懒汉式的比饿汉式的实例线程安全,但是效率低,而DCL实现方式则是2种方式的结合,第一次创建的时候回比较慢,后期利用效率高。