1 package cn.designpattern.singleton; 2 3 import cn.designpattern.Utils; 4 5 /** 7 * 单例模式 8 * 希望某个类只创建一个实例,并且提供一个全局的访问点。 9 * 有两种方式:饿汉式和懒汉式。本列采用懒汉式。 10 * 懒汉式是指只在需要使用时才创建一个该类的实例。 11 * 参见这里 12 */ 13 public class SingletonDemo_1 { 14 15 private static SingletonDemo_1 single = null; 16 17 public static SingletonDemo_1 getInstance() { 18 if (single == null) { 19 single = new SingletonDemo_1(); 20 } 21 return single; 22 } 23 public void print() { 24 Utils.Sop("单例打印......"); 25 } 26 27 /** 28 * main 29 * @param args 30 */ 31 public static void main(String[] args) { 32 SingletonDemo_1.getInstance().print(); 33 } 34 35 36 }
1 package cn.designpattern.singleton; 2 3 import cn.designpattern.Utils; 4 5 /** 6 * @author john 7 * <h1>单例模式</h1> 8 * <p>希望某个类只创建一个实例,并且提供一个全局的访问点。</p> 9 * <p>有两种方式:饿汉式和懒汉式。本列采用饿汉式。</p> 10 * <p>饿汉式是指无论需不需要该类的实例,在该类加载时就创建一个该类的实例。</p> 11 */ 12 public class SingletonDemo_2 { 13 14 private static SingletonDemo_2 single = new SingletonDemo_2(); 15 16 public static SingletonDemo_2 getInstance() { 17 return single; 18 19 } 20 21 public void print() { 22 Utils.Sop("单例打印......"); 23 } 24 25 /** 26 * main 27 * @param args 28 */ 29 public static void main(String[] args) { 30 SingletonDemo_2.getInstance().print(); 31 } 32 }