黑马程序员技术交流社区

标题: 单例设计模式 [打印本页]

作者: edithe    时间: 2015-6-3 11:08
标题: 单例设计模式
步骤:1.私有化构造函数。
  2.声明本类的引用类型,并且创建本类的对象。
  3.提供一个公共的方法获取本类的对象。
  1. class design{
  2.         //自己在内部维护一个对象,用static 修饰,表明就此一份
  3.         private static design d = new design();
  4.         //私有化构造函数,不让创建对象
  5.         private design(){
  6.                
  7.         }
  8.         //提供一个获取对象的方法
  9.         public static design getD() {
  10.                 return d;
  11.         }
  12. }
复制代码






懒汉单例设计模式:
步骤:1.私有化构造函数。
  2.声明本类的引用类型变量,但是不要创建对象。
  3.提供一个公共静态的方法获取本类的对象,获取之前先判断是否已经创建本类的对象,如果没有就创建一个,并返回,否则直接返回。
  1. class design{
  2.         //自己在内部维护一个对象,用static 修饰,表明就此一份
  3.         private static design d;
  4.         //私有化构造函数,不让创建对象
  5.         private design(){
  6.                
  7.         }
  8.         //提供一个获取对象的方法,先判断是否已创建对象
  9.         public static design getD() {
  10.                 if(d==null)
  11.                         d= new design();
  12.                 return d;
  13.         }
  14. }


复制代码



推荐使用饿汉单例设计模式,因为很明显懒汉设计模式存在线程安全问题。


作者: 绝版坏银    时间: 2015-6-3 11:25
过来看看。。。。。
作者: JesseZhu    时间: 2015-6-3 11:26
:lol学习了
作者: 星辉祝愿    时间: 2015-6-3 12:36
懒汉设计模式存在的线程问题可以使用同步synchronized解决的
作者: 追忆似水年华    时间: 2015-6-3 12:47
学习,顶一下。

作者: Tangtang    时间: 2015-6-3 13:46
过来学习一下
作者: ywang    时间: 2015-6-3 13:48
懒汉式和饿汉式,不过同步在哪里?
作者: 欧阳文    时间: 2015-6-3 13:52
使用synchronized解决懒汉设计模式存在的线程问题
作者: 精灵来了    时间: 2015-6-3 14:22
开发基本用不到,面试经常考
作者: mgyyxhyz    时间: 2015-6-3 14:54
路过,看看,学习
作者: twa42    时间: 2015-6-3 17:21
看视频好像是加个synchronized比较好的
作者: e275919713    时间: 2015-6-3 20:22
懒汉设计模式存在的线程问题可以使用同步synchronized解决的
作者: 开弓没有回头箭    时间: 2015-6-3 20:37
懒汉式所谓延迟加载我觉得在实际使用中没有太大意义而,俄汉式不存在多线程同步问题,个人觉得在实际应用中比较好
作者: 飘过的云    时间: 2015-6-3 21:07
对单例又过了一遍 谢谢
作者: 王冲6060    时间: 2015-6-6 11:50
过来看看,学习了!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2