设计模式学习笔记一:单例模式
单例模式,全局保证指定对象只有一个实例。单例模式应该具备避免外部调用多次实例化的特性,并且要在并发环境下数据准确防止”幻读“。
单例模式实现有很多种,下面是实现之一:
/* * Singleton.java 1.0 2014/07/01 * * 声明:欢迎转载,请注明出处。 * */ package com.liushijie.singleton; /** * 单例模式实现 * @author array7 * @version 1.0 * @since 1.6 */ public class Singleton { /** * 双重加锁,保证并发环境下正确性。(性能优于synchronized) */ private volatile static Singleton singleton = null; /** * 私有构造函数,防止外部篡改数据 */ private Singleton() { System.out.println("#Singleton#数据初始信息#"); } public static Singleton getInstance() { if (singleton == null) { synchronized (Singleton.class) { if (singleton == null) { singleton = new Singleton(); } } return singleton; } /** * singleMethod */ public void singleMethod() { System.out.println("#Singleton#singleMethod run..."); } }
调用片段:
Singleton singleton = Singleton.getInstance();
singleton.singleMethod();