黑马程序员技术交流社区

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

作者: hamesksk    时间: 2015-3-14 23:19
标题: 单例设计模式
突然想到一个问题,单例设计模式,为什么不这样设计呢?
class Single{
       final static Single p = new Single();
}

作者: hamesksk    时间: 2015-3-14 23:22
class Single{
        final static Single p = new Single();
        private Single(){}
}
作者: 艺多不压身丶    时间: 2015-3-14 23:24
你说的是加上final吗?标准的饿汉单例是要加上final的。
作者: cq280309216    时间: 2015-3-14 23:31
class Single
{
    private Single(){}      
    public static final Single p = new Single();
      
}
作者: hamesksk    时间: 2015-3-14 23:33
艺多不压身丶 发表于 2015-3-14 23:24
你说的是加上final吗?标准的饿汉单例是要加上final的。

原来如此,我学的单例都没加过final 。。。。以后朝标准看齐
作者: みぎ    时间: 2015-3-14 23:53
每一个类都有一个默认的构造方法,final static Single p = new Single();  这行代码只是创建了一个 变量,  因为存在一个默认的构造方法,用Single s = new Single();仍然可以创建Single的实例。
作者: 空洞的望着窗外    时间: 2015-3-15 00:42
本帖最后由 空洞的望着窗外 于 2015-3-15 11:28 编辑

class Single{//饿汉
private Single(){}
private static  final Sinagle s=new Single();
public static Single  getSingle(){
return  s;
}

}

//懒汉

class Single{
private Single(){}
private static Single s=null;
public static synchronized  Single getSingle(){
if(s==null)
s=new Single();
return s;
}
}
作者: 空洞的望着窗外    时间: 2015-3-15 11:26
空洞的望着窗外 发表于 2015-3-15 00:42
class Single{//饿汉
private Single(){}
private static  final Sinagle s=new Single();
public static Single  getSingle ...

忘记了,昨晚几乎闭着眼打的,,很久以前的东西了,,,




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