码迷,mamicode.com
首页 > 其他好文 > 详细

单例模式

时间:2018-07-17 16:38:23      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:阶段   无法   prot   窗口   instance   并发   加锁   频繁   spring   

        对象的创建时一个非常耗费资源的一件事,如果频繁的创建状态没有改变的对象是一件没有意义的事情。那么,我们可以提供一个给予对象的窗口,而不再允许使用者自由的创建实例对象,这种设计模式就是单例模式。

        根据这个对象是在什么时候创建分为懒加载和非懒加载。懒加载就是在使用者明确要对象的时候才创建对象,非懒加载是类一加载就马上创建好对象等着用户老爷要。

        Spring中bean默认就是单例模式,Scope属性没有显示声明为protoType,那么这个bean就是单例的,每次使用时取得的都是同一个bean。

        懒加载的单例模式还涉及到并发时如何保证单例。就是如果有多个线程同时都要一个相同的对象,一看都没有,那么就先创建一个吧,如果不加控制的话,此时会创建多个对象,这也就违背了单例模式的初衷了。

       

package title02;

public class Singleton {

    private static Singleton instance = null;
    
    // 私有的构造器,类以外无法构造实例
    private Singleton() {
        
    }
    
    public Singleton getInstance() {
        // 双重检查加锁
        if (instance == null) {
            synchronized(Singleton.class) {
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }
}

 

===========================================================================================================================================

       本文只是我现阶段的学习心得总结而成,内容可能不够深入,由于水平所限,不保证所有内容正确,欢迎有同学在评论中指正,万分感谢!

        保证每一个字的原创性!

        作为一个程序员,我所能做的就是每一天都在进步,面对技术保持一颗赤子之心,这是我人生现阶段全部的追求。"Stay hungry, stay foolish"!

============================================================================================================================

单例模式

标签:阶段   无法   prot   窗口   instance   并发   加锁   频繁   spring   

原文地址:https://www.cnblogs.com/sunmin/p/9323134.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!