概述
单例模式
单例模式是一种创建型模式,用于创建系统中唯一的实例。其包括懒汉式单例和饿汉式单例。
饿汉式单例
饿汉式单例在实例静态成员变量声明时就初始化,隐藏构造方法,在需要实例时通过类提供的方法创建。下面是UML类图:
简单实现代码如下:
public class EagerSingleton {
private static final EagerSingleton es = new EagerSingleton();
private EagerSingleton() {
}
public EagerSingleton getInstance(){
return es;
}
}
懒汉式单例
懒汉式单例在声明实例变量的时候并不去创建该实例,而是在需要创建的时候再创建。下面是简单UML类图:
下面是简单代码实现:
public class LazySingleton {
public static LazySingleton ls ;
private LazySingleton(){
}
public LazySingleton getInstance(){
if(ls == null){
synchronized (LazySingleton.class) {
if(ls == null){
return new LazySingleton();
}
}
}
return ls;
}
}
上述代码在实现时虽然解决了线程安全问题,但是牺牲了性能,所以后来有提出了新的IoDH 技术,很好的解决了可能的线程安全问题和性能问题。下面是IoDH简单代码实现:
public class IoDHSingleton {
private static class HolderClass{
private final static IoDHSingleton instance = new IoDHSingleton();
}
private IoDHSingleton(){
}
public static IoDHSingleton getInstance(){
return HolderClass.instance;
}
}
最后
以上就是神勇短靴为你收集整理的单例模式单例模式的全部内容,希望文章能够帮你解决单例模式单例模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复