---单例设计模式之饿汉式---
创建SingleInstance类
1 /** 2 * 单例设计模式之饿汉式 3 */ 4 public class SingleInstance { 5 /** 6 * 私有化构造方法 7 */ 8 private SingleInstance() {} 9 /**10 * 成员变量11 */12 private static SingleInstance instance = new SingleInstance() ;13 /**14 * 提供一个静态的成员方法,返回该对象15 */16 public static SingleInstance getInstance() {17 return instance ;18 }19 }
创建测试类SingleInstanceDemo
1 /** 2 * 单例设计模式的思想: 保证该类在内存中只有一个实例(对象) 3 * 优点节省内存,提高内存利用率 4 */ 5 public class SingleInstanceDemo { 6 7 public static void main(String[] args) { 8 9 // 调用方法获取对象10 SingleInstance instance1 = SingleInstance.getInstance() ;11 SingleInstance instance2 = SingleInstance.getInstance() ;12 13 // 输出14 System.out.println(instance1 == instance2);15 }16 }
-------------------------------------------------------------------------------------------------------------
---单例设计模式之懒汉式---
创建SingleInstance2类
1 /** 2 * 单例设计模式之懒汉式 3 * 4 * 面试中写那种单例设计模式呢? 5 * 面试中写懒汉式: 因为懒汉式体现了两种思想, 第一种线程问题 , 第二种 延迟加载 6 * 7 * 开发中写饿汉式 8 */ 9 public class SingleInstance2 {10 /**11 * 私有化构造方法12 */13 private SingleInstance2() {}14 /**15 * 提供一个成员变量16 */17 private static SingleInstance2 instance = null ;18 /**19 * 提供一个静态的成员方法20 */21 public static synchronized SingleInstance2 getInstance() {22 23 if(instance == null){24 instance = new SingleInstance2() ;25 }26 return instance ;27 }28 }
创建测试类SingleInstanceDemo2
1 public class SingleInstance2Demo { 2 3 public static void main(String[] args) { 4 5 // 获取对象 6 SingleInstance2 instance1 = SingleInstance2.getInstance() ; 7 SingleInstance2 instance2 = SingleInstance2.getInstance() ; 8 9 // 比较10 System.out.println(instance1 == instance2);11 12 }13 14 }
原标题:单例设计模式 (代码实现)
关键词:设计模式