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 }