/**
*
* @author jack
*
* 单例设计模式
* 1.恶汉单例设计模式
* 1.私有化构造函数
* 2.声明本类的引用类型变量,并是该变量指向本类实例对象
* 3.提供一个公共静态方法,获取本类的对象
*
* 2.懒汉单例设计模式
* 1.私有化构造函数
* 2.声明本类的引用类型变量,并为null;
* 3.提供一个公共静态方法,获取本类的对象;获取之前先判断是否之前已经创建本类对象,
* 如果已经创建,直接返回该对象;
*
* 推荐使用恶汉单例设计模式
*/
//恶汉单例设计模式
class single{
// 创建本类私有对象
private static single s = new single();
// 私有化构造函数
private single () {}
// 提供公共静态方法,获取唯一的对象
public static single getInstance() {
return s;
}
}
//懒汉单例设计模式
class single2{
// 创建本类私有对象
private static single2 s = null;
// 私有化构造函数
private single2 () {}
// 提供公共静态方法,获取唯一的对象
public static single2 getInstance() {
// 判断s是否为null
if(null == s) {
// 线程加锁,{}中的代码不会被抢
synchronized (single2.class) {
// 双重判断s是否为null
if(null == s) {
// 创建对象实例
s = new single2();
}
}
}
return s;
}
}