/*
设计模式:对问题行之有效的解决方式。其实它是一种思想。
1,单例设计模式。
解决的问题:就是可以保证一个类在内存中的对象唯一性。
必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。
如何保证对象唯一性呢?
1,不允许其他程序用new创建该类对象。
2,在该类创建一个本类实例。
3,对外提供一个方法让其他程序可以获取该对象。
步骤:
1,私有化该类构造函数。
2,通过new在本类中创建一个本类对象。
3,定义一个公有的方法,将创建的对象返回。
下面四个代码可放在一个文件中,也可放在不同的文件。
main函数在singleDemo中,建议放在同一个文件,这样子也不需要改动代码即可运行
*/
1 //饿汉式 2 class Single类一加载,对象就已经存在了。 3 { 4 private static Single s = new Single(); 5 6 private Single(){} 7 8 public static Single getInstance() 9 { 10 return s; 11 } 12 }
懒汉式 class Single2类加载进来,没有对象,只有调用了getInstance方法时,才会创建对象。 3 延迟加载形式。 4 5 static Single2 s = null; 6 7 Single2(){} 8 9 Single2 getInstance() 10 11 if(s==) 12 s = Single2(); 13 14 15 }
class Test 3 int num; 4 static Test t = Test(); Test(){} Test getInstance() 8 9 t; 11 void setNum( num) 12 this.num =15 getNum() 16 17 18 19 20 }
SingleDemo static void main(String[] args) 5 Single s1 = Single.getInstance(); 6 Single s2 = 8 System.out.println(s1==s2); 9 Single ss = Single.s; 11 Test t1 = new Test(); 13 Test t2 = new Test(); 14 Test t1 = Test.getInstance(); 15 Test t2 =16 t1.setNum(10); 17 t2.setNum(20 System.out.println(t1.getNum()); 19 System.out.println(t2.getNum()); 20 21 }