单单例模式(Singleton)
2.3 单例模式示例代码
在Java中,单例模式的实现又分为两种,一种称为懒汉式,一种称为饿汉式,其实就是在具体创建对象实例的处理上,有不同的实现方式。下面分别来看这两种实现方式的代码示例。为何这么写,具体的在后面再讲述。
(1)懒汉式实现,示例代码如下:
/** * 懒汉式单例实现的示例 */public class Singleton {/** * 定义一个变量来存储创建好的类实例 */private static Singleton uniqueInstance = null;/** * 私有化构造方法,好在内部控制创建实例的数目 */private Singleton(){//}/** * 定义一个方法来为客户端提供类实例 * @return 一个Singleton的实例 */public static synchronized Singleton getInstance(){//判断存储实例的变量是否有值if(uniqueInstance == null){//如果没有,就创建一个类实例,并把值赋值给存储类实例的变量uniqueInstance = new Singleton();}//如果有值,那就直接使用return uniqueInstance;}/** * 示意方法,单例可以有自己的操作 */public void singletonOperation(){//功能处理}/** * 示意属性,单例可以有自己的属性 */private String singletonData;/** * 示意方法,让外部通过这些方法来访问属性的值 * @return 属性的值 */public String getSingletonData(){return singletonData;}}/** * 饿汉式单例实现的示例 */public class Singleton {/** * 定义一个变量来存储创建好的类实例,直接在这里创建类实例,只会创建一次 */private static Singleton uniqueInstance = new Singleton();/** * 私有化构造方法,好在内部控制创建实例的数目 */private Singleton(){//}/** * 定义一个方法来为客户端提供类实例 * @return 一个Singleton的实例 */public static Singleton getInstance(){//直接使用已经创建好的实例return uniqueInstance;}/** * 示意方法,单例可以有自己的操作 */public void singletonOperation(){//功能处理}/** * 示意属性,单例可以有自己的属性 */private String singletonData;/** * 示意方法,让外部通过这些方法来访问属性的值 * @return 属性的值 */public String getSingletonData(){return singletonData;}}