浅谈JAVA设计模式之——单例模式(Singleton)

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/45441169

一、概述

       保证一个类仅有一个实例,并提供一个访问它的全局访问点。

二、适用性

     1.当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。

     2.当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。

三、参与者

  Singleton 定义一个Instance操作,允许客户访问它的唯一实例。Instance是一个类操作。 可能负责创建它自己的唯一实例。

四、类图

技术分享

五、示例

     Singleton

package com.lyz.design.singleton;
/**
 * 创建单例对象的类
 * @author liuyazhuang
 *
 */
public class Singleton {
    /**
     * 声明一个静态Singleton类变量
     */
    private static Singleton sing;
    /**
     * 构造方法私有化
     */
    private Singleton() {}
    /**
     * 创建单例对象
     * @return
     */
    public static Singleton getInstance() {
        if (sing == null) {
            synchronized (Singleton.class) {
				if(sing == null){
					sing = new Singleton();
				}
			}
        }
        return sing;
    }
}

  Test

 

package com.lyz.design.singleton;
/**
 * 测试类
 * @author liuyazhuang
 *
 */
public class Test {
    
    public static void main(String[] args) {
        Singleton sing = Singleton.getInstance();
        Singleton sing2 = Singleton.getInstance();
        
        System.out.println(sing);
        System.out.println(sing2);
    }
}

  Result

 

com.lyz.design.singleton.Singleton@11f46b16
com.lyz.design.singleton.Singleton@11f46b16


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。