设计模式之一 :单例设计模式
单例设计模式是比较简单的,它有三个要点:
一是某个类只能有一个实例;
二是它必须自行创建这个实例;
三是它必须自行向整个系统提供这个实例。
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.(这里是你要调用的方法);