一、单例模式
1.饿汉式单例模式:在类初始化时,已经自行实例化
class EagerSingleton {
private static final EagerSingleton m_instance = new EagerSingleton();
/** * 私有的默认构造子 */
private EagerSingleton() {
}
/**
* * 静态工厂方法
*/
public static EagerSingleton getInstance() {
return m_instance;
}
}
2.懒汉式单例模式:在第一次调用的时候实例化
class LazySingleton {
// 注意,这里没有final
private static LazySingleton m_instance = null;
/** * 私有的默认构造子 */
private LazySingleton() {
}
/**
* * 静态工厂方法
*/
public synchronized static LazySingleton getInstance() {
if (m_instance == null) {
m_instance = new LazySingleton();
}
return m_instance;
}
}