码迷,mamicode.com
首页 > 编程语言 > 详细

Java设计模式之单例模式

时间:2017-11-27 23:31:51      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:源码   应用   on()   运行时   懒汉   源代码   原则   blog   enter   

Java设计模式之单例模式

最近由于想了解下底层的源码,所以看了些设计模式,后续看了几种写几种

单例模式英文原文:

  • Ensure a class has only one instance,and provide a global point of access to it
  • 即:在整个应用程序中,确保一个类只有一个实例,并向整个系统中提供这个实例

在Java中通常有两个表现形式

  • 饿汉式单例:类在加载时就被实例化
  • 懒汉式单例:第一次加载时才被加载实例化

1、饿汉式单例

Singleton
static Singleton m_instance = new Singleton ()
static getInstance() : Singleton

源代码:

public class Singleton{
     private Singleton() {}  
    private static final Singleton1 single = new Singleton();  
    //静态工厂方法   
    public static Singleton getInstance() {  
        return single;  
    }  
}
//成员变量是私有的,而且不能被外部访问

2、懒汉式单例

Singleton
static Singleton m_instance = null
syncchronized static getInstance() : Singleton

源代码:
java public class Singleton { private Singleton() {} private static Singleton single=null; public static Singleton getInstance() { if (singleton == null) { synchronized (Singleton.class) { if (singleton == null) { singleton = new Singleton(); } } } return singleton; } } //双重校验锁

  • 第一种虽然是比较耗费资源,但是反映速度是比较好的
  • 第二种虽然比较爽,但是比较消耗运行时的性能,但是影响很小
  • 最终说来各有千秋,第一种比较适合用户资源配置,第二种比较适合于业务逻辑上的单例模式

借助于:电子工业出版社《设计原则》感谢!

Java设计模式之单例模式

标签:源码   应用   on()   运行时   懒汉   源代码   原则   blog   enter   

原文地址:http://www.cnblogs.com/ontoweb-zp/p/7906274.html

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