单例模式

来源:互联网 发布:cpda数据分析师含金量 编辑:程序博客网 时间:2024/05/22 09:47

单例模式

定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
有以下几个要素:
- 私有的构造方法
- 指向自己实例的私有静态引用
- 以自己实例为返回值的静态的公有的方法

/** ** 饿汉模式  ** 在单例类被加载时候,就实例化一个对象交给自己的引用 **/public class Singleton {     //私有静态引用    private static Singleton singleton = new Singleton();      //私有构造    private Singleton(){    }      //公开静态方法返回自己的实例    public static Singleton getInstance(){          return singleton;      }  }  
/** ** 懒汉模式  ** 调用取得实例方法的时候才会实例化对象 **/public class Singleton {      private static Singleton singleton;      private Singleton(){    }      public static synchronized Singleton getInstance(){          if(singleton==null){              singleton = new Singleton();          }          return singleton;      }  }  

一个JVM中会出现多个单例吗?

Class c = Class.forName(Singleton.class.getName());Construct ct = c.getDeclaredConstructor();ct.getAccessible(true);Singleton singleton = (Singleton)ct.newInstance();

注:单例模式因为其构造方法是私有的,所以它是不可以被继承的,但是其他很多单例模式是可以继承的,例如登记式单例。

0 0
原创粉丝点击