Java设计模式之单例(件)模式

单件模式
  在开发的过程中,有些时候只需要一个对象,如缓存,对话框,注册表,数据库连接或线程池等对象,为了确保在整个应用程序中能够保证该对象是唯一的,引入了单件模式。
     单件模式,确保一个类只有一个实例,并提供一个全局访问点。
   单件模式的一般组成:
   1)定义一个该类的private static变量,确保是创建一次
   2)设置其无参构造器为private
   3)提供一个全局访问点,即public static 返回该类的实例化。
      这种常规的做法,在单线程中可以使用,但是对于多线程就有可能会使类有多个对象了。  3 “双重检查枷锁”,在getInstance中减少使用同步。首先检查是否创建了实例,如果尚未创建,才进行同步,在同步内再次检查是否创建。这种可以减少同步等待的时间。
   
package com.whut.singleton;

public class SingletonObject {
  
  private volatile static SingletonObject singleObject;
  private SingletonObject(){}
  
  public static    synchronized SingletonObject getInstance()
  {
    if(singleObject==null)
    {
      synchronized(SingletonObject.class)
      {
        if(singleObject==null)
        {
          singleObject=new SingletonObject();
        }
      }
    }
    return singleObject;
  }
}

  不能继承单件类,因为单件类的构造器是私有的,而继承后的子类均需要调用该构造器,可是该构造器是私有的,则就不能继承,一旦改了构造器访问域,则就会使单件类受到破坏。

本文转自 zhao_xiao_long 51CTO博客,原文链接:http://blog.51cto.com/computerdragon/1155669

上一篇:第十六章:SpringCloud Config 配置自动刷新


下一篇:.NET Micro Framework 4.2 beta 源码探析