我是靠谱客的博主 神勇短靴,最近开发中收集的这篇文章主要介绍单例模式单例模式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

单例模式

单例模式是一种创建型模式,用于创建系统中唯一的实例。其包括懒汉式单例和饿汉式单例。

饿汉式单例

饿汉式单例在实例静态成员变量声明时就初始化,隐藏构造方法,在需要实例时通过类提供的方法创建。下面是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;
	}
}

最后

以上就是神勇短靴为你收集整理的单例模式单例模式的全部内容,希望文章能够帮你解决单例模式单例模式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部