一、单例模式实现方式
常见的
1、饿汉方式
示例代码:
package com.mt.singleton;
/**
* 设计模式单例模式之饿汉实现方式
* 线程安全,调用效率高,但无法实现延迟加载
* @author MT
*
*/
public class SingletonDemo1 {
private static SingletonDemo1 s = new SingletonDemo1();
//私有化构造器
private SingletonDemo1(){
}
//添加获取对象的公共方法,不能延迟加载
public static SingletonDemo1 getInstance(){
return s;
}
}
2、懒汉方式
示例代码:
package com.mt.singleton;
/**
* 设计模式单例模式之懒汉实现方式
* 线程安全,延迟加载,但调用效率不高
* @author MT
*
*/
public class SingletonDemo2 {
private static SingletonDemo2 s;
//私有化构造器
private SingletonDemo2(){
}
//添加获取对象的公共方法,同步方法,所以调用效率低,实现延迟加载
public static synchronized SingletonDemo2 getInstance(){
if (s==null) {
s=new SingletonDemo2();
}
return s;
}
}
3、静态内部类方式
示例代码:
package com.mt.singleton;
/**
* 设计模式单例模式之静态内部类实现方式
* 线程安全,调用效率高,