package com.dream.design;
/**
* @author zxg
* 饿汉模式 1构造方法私有 2创建一个静态对象 3提供拿对象的方法
*/
public class Sigleton {
private Sigleton(){
}
private Sigleton sigleton = new Sigleton();
public Sigleton getInstance(){
return sigleton;
}
}
package com.dream.design;
/**
* @author zxg
* 懒汉模式 1 构造方法私有化 2提供一个私有对象 3提供取对象方法
*/
public class Sigleton2 {
private Sigleton2(){
}
private Sigleton2 sigleton;
public Sigleton2 getInstance(){
if(sigleton==null){
return new Sigleton2();
}else{
return sigleton;
}
}
}
懒汉模式跟饿汉模式区别
1 加载方式不同,饿汉模式在类加载时候就生成对象,懒汉模式在取对象的时候才生成
2 线程安全问题,饿汉式安全的,懒汉线程不安全的
3 故饿汉模式在加载时候速度慢,运行时候速度快,懒汉模式相反