标签:
写过很多单例模式实现,今天贴一个书中的写法。
单例模式定义:一种设计模式,在只需要为类创建一个实例的时候使用。
要求:只能有一种创建实例的方式,同时不能获得处于未初始化状态的对象引用。
因此在单例模式中,需要有一个声明为private的构造方法,而且只调用一次。
package oop;
/**
* 单例模式
*
* @author lunatictwo
*/
public class Singleton {
private final static Singleton instance = new Singleton();
private static boolean isInit = false;
// 构造方法,只在初始化instance时才调用构造方法
private Singleton() {
super();
}
private void init() {
// 初始化方法放在私有方法中
}
// 通过静态辅助方法获得实例
public static synchronized Singleton getInstance() {
if (isInit) {
return instance;// 判断是否激活
}
instance.init();// 激活实例,并保存状态为已激活,下次请求创建实例时不会再次初始化
isInit = true;
return instance;
}
}
此时在获取单例实例的时候,只能通过getInstance() 获取。
标签:
原文地址:http://blog.csdn.net/tryitboy/article/details/50549384