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
可见 我们只能定义一个该类的对象