单例模式设计

 1 package SingleDemo;
 2 
 3 
 4 
 5 
 6 //单例模式的设计要点共有3个
 7 /*
 8 1. 私有化构造函数
 9 2.在类内部定义一个堆上对象
10 3.对外提供一个接口,将已经定义好的堆上对象以引用的方式返回出去
11 
12 */
13 
14 
15 
16 class Single
17 {
18     //计数器 
19     private int num;
20     
21     //初始化计数器
22     {
23         num = 0;
24     }
25     
26     //获取计数器
27     public int getNum()
28     {
29         return num;
30     }
31     
32     
33     //构造函数 每当构造一个对象计数器便加一;
34     private Single()
35     {    
36         ++num;
37         System.out.println("num=" + num);
38     }
39     
40     //在类内部定义一个对象 //c++是用指针实现
41     private static Single s = new Single();
42     
43     
44     //定义一个接口
45     public static Single getInstance()
46     {
47         return s;
48     }
49     
50 }
51 
52 
53 
54 //设计模式 入门  单例模式
55 public class SingleDemo {
56     public static void main(String[] args)
57     {
58         Single s1 = Single.getInstance();
59         Single s2 = Single.getInstance();
60         
61 
62         
63         System.out.println(s1.getNum());
64         System.out.println(s2.getNum());
65     }
66     
67     
68 }

打印结果

num=1
1
1  

可见 我们只能定义一个该类的对象

原文地址:https://www.cnblogs.com/DLzhang/p/4164794.html