java设计模式——单例设计模式
2019-05-22 06:29:13来源:博客园 阅读 ()
/*
设计模式:对问题行之有效的解决方式。其实它是一种思想。
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 }
原文链接:https://www.cnblogs.com/CSAH/p/10886771.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:集合概述
下一篇:【编程大系】Java资源汇总
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash