package design_patterns;
/**
* 单例模式:获取对象并保证对象是唯一的。
* @author Cuilitang
*
*/
public class Singleton {
//饿汉式,先创建一个对象
private static Singleton instance = new Singleton();
//私有自己的构造
private Singleton(){};
//对外提供一个访问对象的静态方法,方便类名调用
public static Singleton getInstance(){
return instance;
}
//写个main函数测试一下
public static void main(String[] args) {
for(int i = 0; i <100; i++){
Singleton obj = Singleton.getInstance();
System.out.println(obj); //获得对象,打印
}
}
}
package design_patterns;
/**
* 单例模式:获取对象并保证对象是唯一的。
* 懒汉式,延迟加载,初始化中不new对象
* 对于资源密集,配置开销较大的单体更合理的做法是将实例化(new)推迟到使用它的时候.
* tag懒汉式在多线程情况下会出现线程安全问题
* @author Cuilitang
*/
public class LazySingleton {
private static LazySingleton instance = null;
private LazySingleton(){}; //私有自己的构造
public static LazySingleton getInstance(){ //对外提供一个访问对象的静态方法,方法中new一个对象
if(instance == null){
instance = new LazySingleton();
}
return instance;
}
//写个main函数测试一下
public static void main(String[] args) {
for (int i = 0; i < 100; i++) {
System.out.println(LazySingleton.getInstance());
}
}
}
懒汉式在多线程下会出现线程安全问题,这个在后面的日志中会写。
2013-10-24 23:12:13