实际是一样的,只不过是getNumberInstance()里用new生成对象再返回而已;
比如你写一个getObject()
Object getObject()
{
    return new Object();
}
效果是一样的

解决方案 »

  1.   

    工厂模式,最终还是用new来创建的,
    不过对用户来说不可见。
    工厂模式运用很广的,
    对象的具体类型,可以推迟到运行时才确定。
      

  2.   

    比如Singleton模式会把构造函数设为不可见,不能通过new来生成对象,而需要用提供的getInstance方法得到对象的实例
      

  3.   

    它在方法体里面new了一个对象,所以不调用前不用new.
      

  4.   


    这么说吧:
    class A {
       public static A getA() {
          return new A();
       }
    }A a = A.getA();
    最会不是还用new了?
    NumberFormat使用的是factory method来代替new的操作,NumberFormat是一个abstract的类,也就是jdk不想让你直接去new 具体的NumberFormat类,而使用getNumberInstance()去实现透明的i18n支持
      

  5.   

    那工厂模式到底有什么实际意义么,它毕竟还是可以被用户创建实例的////////////////////////////////////////////////////////////////慢慢体会吧。提示一下,你可以把构造方法都声明为private,这样用户就只能通过静态工厂取得对象实例了。
      

  6.   

    类名 myobject = new 构造函数();NumberFormat nf = NumberFormat.getNumberInstance();一个是实例变量,一个是类变量生成实例 Test instance = new Test() 一般显视的用new关键字
    getNumberInstance()此方法一定是类方法,而不是实例方法 
    他们区分的条件,是否有关键static public class A{
    public static test(){} //类方法,全局的,非面向对象的编写
    public testA(){} 实例方法 面向对象的编写
    }