A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 泮和顺 中级黑马   /  2012-3-12 10:47  /  1810 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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里有这样的类吗

3 个回复

倒序浏览
API中有这样的类啊,Runtime类,你可以自己去API中查找

Runtime:该类中没有构造函数,但是有方法是非静态的方法,说明该类提供了获取本类对象的方法,而且该方法是静态的,你向下查找它的方法,发现有一个getRuntime()
方法,作用是返回与当前 Java 应用程序相关的运行时对象,说明该类使用了单例设计模式
回复 使用道具 举报
1.单例模式就是指这个类只可以有一个对象存在,你改成Object它也一样只能创建出一个对象,只是这个对象可以是任何类型的。静态不能去掉,因为这个方法是用来创建对象的,有static就可以直接用类名调用这个方法,但是如果没有加static的话,这个方法就只能通过对象调用,那么你用对象调用这个方法再创建对象不就有两对象了么?就不是单例模式了。所以static一定不能去掉。
2.单例模式的好处是可以节省内存,因为它限制了实例的个数。API肯定有把,只是我懂的太少,这个还真回答不了。
回复 使用道具 举报
如果希望对象只创建一个实例,并且提供一个全局的访问对象,可以使用单例模式

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马