package com.dasenlin.singleton;
/**
* 单例模式的三种写法
* @author Administrator
* 第一种:需要线程安全的懒汉式写法
* 1.私有化构造方法
* 2.私有化静态变量
* 3.提供对外的公共的实例化对象的方法
*/
public class SingletonModle {
private static SingletonModle instance;
private SingletonModle(){
}
public static SingletonModle getInstance(){
if(null==instance){//多线程提升访问效率
synchronized (SingletonModle.class) {//多线程保证访问安全
if(null==instance){
instance=new SingletonModle();
}
return instance;
}
}
return instance;
}
}
/**
* 饿汉式
* @author Administrator
* 1.私有化构造方法
* 2.私有化静态变量,并且初始化
* 3.提供对外的公共的实例化对象的方法
*/
class HungrySingleton {
private static HungrySingleton instance = new HungrySingleton();
private HungrySingleton(){
}
public static HungrySingleton getInstance(){
return instance;
}
}
/**
* 有效率的单利模式
* 类在使用的时候加载,添加一个静态内部类,延迟加载
* @author Administrator
*
*/
class Effectiveness{
private static class EffectivenessHolder{
private static Effectiveness instance = new Effectiveness();
}
private Effectiveness(){
}
public static Effectiveness getInstance(){
return EffectivenessHolder.instance;
}
}
单利模式的3种写法
最新推荐文章于 2024-06-28 13:33:28 发布