黑马程序员技术交流社区

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

作者: ToGame    时间: 2015-9-16 22:41
标题: java单例设计模式
单例设计模式,是我们常见的一种设计模式,今天看到了这个,便把它写了下来:

单例设计模式有两种,一种是懒汉模式,一种是饿汉模式!
两种模式各有特点:
          先上代码,结合代码讲解更好:
懒汉模式:
public class Demo
{
     private static Demo INSTANCE=new Demo();
     private Demo(){}
     public static Demo getDemo()
     {
            return INSTANCE;
      }
}
这种模式想要获取这个单例,只有通过静态方法getDemo得到,这里的INSTANCE利用封装的特性变得如常量一般,只能new一次,也就是说这个单例,在堆内存中,它的地址是不会变化的

饿汉模式:
class Demo
{
private Demo(){}
public static final Demo INSTANCE = new Demo();
}

饿汉模式则是直接将定义一个静态常量单例类,这里的INSTANCE也是不能在new 的,因为常量只能被赋值一次!
OK!!这就是两种模式了,THANK!!
作者: 且听风_R0pZK    时间: 2015-9-17 07:32
感谢分享哈!!!{:2_30:}
作者: meihua    时间: 2015-9-17 08:42
懒汉式有延时加载 ,需要用时才调用暴露出去的方法创建对象,而且要加锁。
所以   private static Demo INSTANCE=null;。。。。。
饿汉式你也没有定义一个对外暴露的方法调用,怎么使用这个类。

作者: Adualtbird    时间: 2015-9-17 08:52
两种都不对,你把饿汉式当成了懒汉式,懒汉式要延迟加载,只有getInstance被调用时,才生成对象
作者: Ethan丶    时间: 2015-9-17 08:56
即将看到这里来了~
作者: Anmyre    时间: 2015-9-17 09:20
学习了 学习了学习了
作者: ln0491    时间: 2015-9-17 09:41
写错了。。。。。。。
作者: hhuxiaolang    时间: 2015-9-17 10:00
_(:з」∠)_没学到的看着楼上评论已经搞混了
作者: sxwnzbn    时间: 2015-9-17 10:14
学习了学习了学习了




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