这个设计模式我相信几乎是使用最多的一种了
它是确保一个类中只有一个实例,一般用来读取配置,产生其它依赖对象
可以避免对资源的多重占用,但单例模式对测试是不利的,扩展也困难
package cn.byhook.design;
/**
* 作者: Andy
* 时间: 2016-07-27
* 单例模式
*/
public class Singleton {
/**
* 饿汉式单例
*/
private static Singleton sHungryInstance = new Singleton();
/**
* 懒汉模式单例
*/
private static Singleton sLazyInstance;
private Singleton(){
}
/**
* 饿汉模式单例
* @return
*/
public static Singleton getHungryInstance(){
return sHungryInstance;
}
/**
* 懒汉模式单例
* 线程安全
* @return
*/
public static Singleton getLazyInstance(){
if(sLazyInstance == null) {
synchronized (Singleton.class){
if(sLazyInstance == null) {
sLazyInstance = new Singleton();
}
}
}
return sLazyInstance;
}
}