每天一个设计模式 -- 单例模式
先从最熟悉的单例模式开始!
public class Singleton {
/**
* 1.某些类的创建过于频繁,频繁创建一些大型对象,是一笔很大的系统开销
* 2.省去 new 操作符,降低系统内存的使用频率,降低GC的开销
* 3.有些核心交易,控制着交易流程,如果该类可以创建多个,系统会乱。使用单例模式保证类的唯一,
* 才能保证核心交易服务器独立控制整个过程
*
*
* getInstance 牺牲了一部分性能,保证了程序的安全
* 如果在性能上有需要,可以使用内部类的方式去创建
*/
/*保持静态私有实例,防止被引用。此处赋值null,为了延迟加载*/
private static Singleton instance = null;
/*私有化构造方法,防止类被实例化*/
private Singleton(){}
/**
* 初始化方法
* @return
*/
private static synchronized Singleton getInstance(){
if(instance == null){
return new Singleton();
}
return instance;
}
/* 如果该对象被用于序列化,可以保证对象在序列化前后保持一致 */
public Object readResolve() {
return instance;
}
}
浙公网安备 33010602011771号