返回

老生常谈的单例模式你真的会了嘛?

发布时间:2022-12-01 23:00:24 263

什么是单例多例

单例:就是所有的请求都用一个对象来处理,service和dao层的对象通常都是单例的, 之所以用单例,是因为没必要每个请求都新建一个对象,这样子   既浪费CPU又浪费内存; 单例就是该类只能返回一个实例。

单例所具备的特点:

1.私有化的构造函数 2.私有的静态的全局变量 3.公有的静态的方法 多例:指每个请求用一个新的对象来处理,比如action;  之所以用多例,是为了防止并发问题;即一个请求改变了对象的状态,此时对象又处理另一个请求,而之前请求对对象状态的改变导致了对象对另一个请求做了错误的处理;  用单例和多例的标准只有一个, 当对象含有可改变的状态时则多例,否则单例;  

懒汉式单例模式:

public class Singleton {
	private static Singleton singleton = null;
	private Singleton(){
	}
	synchronized public static getInstance(){
		if(singleton == null){
			singleton = new Singleton();
		}
		return singleton;
	}
}

饿汉式单例模式

public class Singleton {
	private static final Singleton singleton = new Singleton();	
	public Singleton(){
	}
	public static getInstance(){
		return singleton ;
	}
}

线程安全式单例模式:

public class Singleton{
	private static Singleton singleton;	
	private Singleton(){
	}
	public static getInstance(){
		if(null == singleton){
			synchronized(Singleton.class){
				if(null == singleton){
					singleton = new Singleton();
				}
			}
		}
	return singleton;
	}
}
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
pptx演练 自动拼一个视频标题 2022-12-01 22:46:09