黑马程序员技术交流社区

标题: 关于单例模式 [打印本页]

作者: 泮和顺    时间: 2012-3-12 10:47
标题: 关于单例模式
public A{

            private static A a;

            private A(){}

            public static A newA(){

                if ( a == null)

                    a = new A();

                return a;

            }

        }     单例模式条件:域只有一个而且还是对象,类不能被new要自己提供个newA方法
问题 1吧 里面的类A 改成Object还是单例模式吧  方法静态 静态能去掉吗
     2 单例模式基本用在哪比较多  比如API里有这样的类吗
作者: 赵英坤    时间: 2012-3-12 10:59
API中有这样的类啊,Runtime类,你可以自己去API中查找

Runtime:该类中没有构造函数,但是有方法是非静态的方法,说明该类提供了获取本类对象的方法,而且该方法是静态的,你向下查找它的方法,发现有一个getRuntime()
方法,作用是返回与当前 Java 应用程序相关的运行时对象,说明该类使用了单例设计模式

作者: 易伟    时间: 2012-3-12 11:03
1.单例模式就是指这个类只可以有一个对象存在,你改成Object它也一样只能创建出一个对象,只是这个对象可以是任何类型的。静态不能去掉,因为这个方法是用来创建对象的,有static就可以直接用类名调用这个方法,但是如果没有加static的话,这个方法就只能通过对象调用,那么你用对象调用这个方法再创建对象不就有两对象了么?就不是单例模式了。所以static一定不能去掉。
2.单例模式的好处是可以节省内存,因为它限制了实例的个数。API肯定有把,只是我懂的太少,这个还真回答不了。
作者: 王思兰    时间: 2012-3-12 11:08
如果希望对象只创建一个实例,并且提供一个全局的访问对象,可以使用单例模式






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