java设计模式——单例设计模式
程序员文章站
2022-03-31 12:40:51
/*设计模式:对问题行之有效的解决方式。其实它是一种思想。1,单例设计模式。 解决的问题:就是可以保证一个类在内存中的对象唯一性。必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。如何保证对象唯一性呢?1,不允许其他程序用new创建该类对象。2,在该类创建一个本类实例。3,对外提供 ......
/*
设计模式:对问题行之有效的解决方式。其实它是一种思想。
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 }
1 //懒汉式 2 class single2//类加载进来,没有对象,只有调用了getinstance方法时,才会创建对象。 3 //延迟加载形式。 4 { 5 private static single2 s = null; 6 7 private single2(){} 8 9 public static single2 getinstance() 10 { 11 if(s==null) 12 s = new single2(); 13 return s; 14 } 15 }
1 class test 2 { 3 private int num; 4 5 private static test t = new test(); 6 private test(){} 7 public static test getinstance() 8 { 9 return t; 10 } 11 public void setnum(int num) 12 { 13 this.num = num; 14 } 15 public int getnum() 16 { 17 return num; 18 } 19 20 }
1 public class singledemo 2 { 3 public static void main(string[] args) 4 { 5 single s1 = single.getinstance(); 6 single s2 = single.getinstance(); 7 8 system.out.println(s1==s2); 9 10 // single ss = single.s; 11 12 // test t1 = new test(); 13 // test t2 = new test(); 14 test t1 = test.getinstance(); 15 test t2 = test.getinstance(); 16 t1.setnum(10); 17 t2.setnum(20); 18 system.out.println(t1.getnum()); 19 system.out.println(t2.getnum()); 20 } 21 }
上一篇: 小米8屏幕指纹版官宣降价:性价给力
下一篇: C语言/C++对编程学习的重要性!