单例模式
1、饿汉式单例
package com.lyis.patterns.singleton;
/**
* 单例模式
* Eager Singleton(饿汉式单例)
*
* @author Johnson
* @version Friday February 24th, 2012
*/
public class EagerSingleton {
/* 私有静态对象,类加载时初始化当前实例 */
private static EagerSingleton instance = new EagerSingleton();
/**
* 私有化构造函数,防止外部创建
*/
private EagerSingleton() {
}
/**
* 外部通过此方法获取当前实例
*
* @return
*/
public static EagerSingleton getInstance() {
return instance;
}
}
2、懒汉式单例
package com.lyis.patterns.singleton;
/**
* 单例模式
* Lazy Singleton(懒汉式单例)
*
* @author Johnson
* @version Friday February 24th, 2012
*/
public class LazySingleton {
/* 私有静态对象,类加载时不做初始化 */
private static LazySingleton instance = null;
/**
* 私有化构造函数,防止外部创建
*/
private LazySingleton() {
}
/**
* 外部通过此方法获取当前实例
* synchronized(同步化,防止出现多个不同对象)
*
* @return
*/
public synchronized static LazySingleton getInstance() {
if (instance == null) {
return new LazySingleton();
}
return null;
}
}