首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

设计方式之一 :单例设计模式

2013-04-12 
设计模式之一 :单例设计模式单例设计模式是比较简单的,它有三个要点:一是某个类只能有一个实例;二是它必须

设计模式之一 :单例设计模式

单例设计模式是比较简单的,它有三个要点:

一是某个类只能有一个实例;

二是它必须自行创建这个实例;

三是它必须自行向整个系统提供这个实例。

package cn.google.design.singleton;

/**

 * 单例模式最要关心的则是对象创建的次数以及何时被创建。
 * @author 李小鹏
 */
public class Singleton {

//方法一
private static class SingletonHolder {
//单例对象
static final Singleton instance = new Singleton();
}

public static Singleton getInstance(){
return SingletonHolder.instance;
}

//方法二 不用每次都进行生成对象,只是第一次使用时生成实例,提高了效率
private static Singleton instance = null;
private Singleton() {
//do something
}

public static Singleton getInstance() {
 if (instance==null) {
 instance = new Singleton();
 }
 return instance;
}

//方法三  在自己内部定义自己的一个实例,只供内部调用
private static Singleton instance = new Singleton();
private Singleton(){
   //do something
       }

//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance(){
             return instance;
}

//方法四   双重锁的形式 
//这个模式将同步内容下方到if内部,提高了执行的效率,不必每次获取对象时都进行同步,只有第一次才同步,创建了以后就没必要了
private static Singleton instance = null;

private Singleton(){

}

public static Singleton getInstance(){

       if(instance==null){
           synchronized (Singleton.class) {
       if(null == instance){
           instance = new Singleton();
      }
    }
  }
   return instance;
  }

}


二。在别的类里如何使用:

Singleton.getInstance.(这里是你要调用的方法);



热点排行