单例模式为什么不直接在类中把对象设置为静态就好了呢?

单例模式为什么不直接在类中把对象设置为静态就好了呢?

单例模式的目的不就是为了让对象唯一吗,这样直接把对象设置为static类型的就好了,为什么还要将构造方法设置成私有类呢?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

package com.singtlen;

public class SingletonOne {

private static SingletonOne instance=new SingletonOne();

public static SingletonOne getInstance(){

return instance;

}

}

你好,你是问代码为什么不写成这样吗?

如果写成这样,也可以在类外用new去创建对象了。

祝学习愉快!

  • 轻风起自远东QAQ 提问者 #1
    对啊,在类外创建对象和类内创建对象有什么不同吗....
    2017-01-20 17:53:45
  • 单例模式想要创建唯一对象,只能调用getInstance()方法创建。如果可以在类外调用new去创建对象,就可以创建多个了,这就和单例设计的初衷不一样了。所以需要在类的内部定义一个私有构造方法,这样就不能在类外创建对象了。
    2017-01-20 17:58:39
  • 轻风起自远东QAQ 提问者 #3
    非常感谢!
    2017-01-20 18:00:38
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师