单例模式:
确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例
特点:
1.单例类只能有一个实例
2.单例类必须自己创建自己的唯一实例
3.单例必须给所有其他对象提供这一实例
单例类的三种实现方式:
1.懒汉式单例:
//懒汉式单例类.在第一次调用的时候实例化
public class Singleton2 {
//私有的默认构造子
private Singleton2() {}
//注意,这里没有final
private static Singleton2 single=null;
//静态工厂方法
public synchronized static Singleton2 getInstance() {
if (single == null) {
single = new Singleton2();
}
return single;
}
}
2.饿汉式单例:
//对第一行static的一些解释
// java允许我们在一个类里面定义静态类。比如内部类(nested class)。
//把nested class封闭起来的类叫外部类。
//在java中,我们不能用static修饰顶级类(top level class)。
//只有内部类可以为static。
public static class Singleton{
//在自己内部定义自己的一个
实例,只供内部调用
private static final Singleton instance = new Singleton();
//自行实例化
private Singleton(){
//do something
}
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance(){
return instance;
}
}
3.双重锁单例:
public static class Singleton{
private static Singleton instance=null;
private Singleton(){
//do something
}
public static Singleton getInstance(){
if(instance==null){
synchronized(Singleton.class){
if(null==instance){
instance=new Singleton();
}
}
}
return instance;
}
}
//这个模式将同步内容下方到if内部,提高了执行的效率,不必每次获取对象时都进行同步,只有第一次才同步,创建了以后就没必要了。
注:单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
分享到:
相关推荐
设计模式一书,经典中的经典,对设计模式感兴趣的朋友不要错过
传说中的乌云内部工具,刷洞必备!
1、2021-重塑5G传说解锁商业模式创新 2、使用/学习目标:了解 2021-重塑5G传说解锁商业模式创新 3、应用场景:2021-重塑5G传说解锁商业模式创新 4、特点:2021-重塑5G传说解锁商业模式创新 5、适用人群:互联网从业...
重塑5G传说,解锁商业模式创新-
2021重塑5G传说:解锁商业模式创新.pdf
传说中的100句英语可以帮你背7000单词Word文档
《传说中的WCF》系列博客文章第12节,有关服务器端回调的例子源代码。通过服务器回调和计时器结合,每隔3秒钟会产生一个随机数并回调到客户端。
java 精华 文档 传说中的java葵花宝典java 精华 文档 传说中的java葵花宝典java 精华 文档 传说中的java葵花宝典java 精华 文档 传说中的java葵花宝典java 精华 文档 传说中的java葵花宝典java 精华 文档 传说中的...
传说中的iOS9源代码,Github上可能已经没有了,放这里供大家研究研究。
使用ASP.NET MVC 4,EF,Knockoutjs和Bootstrap设计和开发网站 Design a website architecture that must be simple, easily understandable by any web designer using asp.net MVC, EF, Knockoutjs and Bootstrap
五种以上模式,单例、工厂、 门面 、策略
20210305-安永-通信行业重塑5G传说:解锁商业模式创新.pdf
传说中的100句背700单词 传说中的100句背700单词
一般情况下比如我们的设备出现软件故障,无法正常启动,比如我们的设备开机密码忘记,还有传说中的白苹果,等等。都可以通过这个方法解决。这就是为什么我喊他为无敌重刷模式啦~ 下面开始教程: 一、进入DFU详细步骤...
传说中的华为面试考题,,看看就知道了 OSI是Open System Interconnect的缩写,意为开放式系统互联。在OSI出现之前,计算机网络中存在众多的体系结构,其中以IBM公司的SNA(系统网络体系结构)和DEC公司的DNA(Digital ...
安永-通信行业重塑5G传说:解锁商业模式创新
传说中的上帝模式有兴趣的朋友可以看看 传说中的上帝模式有兴趣的朋友可以看看
传说中生命的源来.PPt
传说中的十万IP程序 可以试试哦!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
传说中的 感染 word文档,源代码,要的速度了!