设计模式(1)_单例模式
设计模式经典的常用的就23种,单例模式算是 最好容易理解的设计模式之一了。但是要写出高效、安全、真正意义上的单例模式并不容易:
单例模式有两种实现方法:延迟实例化 和急切实例化
第一种:延迟实例化
顾名思义,延迟实例化,就是在使用时,才去实例化对象;
package com.test;
/**
* 设计模式之 单例模式,
* 就是要保证一个类有且只能存在一个实例对象
* @author crg
*
*/
public class Singleton {
private static Singleton uniqueInstance;
/**
* 构造方法私有化,外部不能访问
*/
private Singleton(){}
/**
* 向外部提供获取该类实例的静态方法
* @return
*/
public static Singleton getInstance(){
if (uniqueInstance == null) {
//该类对象不存在 才创建实例对象,如果存在直接返回该
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
}
一般都是这么写的。但是这真的是单例吗?下面测试一下:
测试代码:
package com.test;
public class MainTest {
/**
* @param args
*/
public static