List returnValues = new ArrayList();

ArrayList returnValues = new ArrayList();的具体区别在那里呀?

解决方案 »

  1.   

    加一个静态方法GetInstacnce()在你的类中返回类的实例
      

  2.   

    两种方式得到的类对象name1与name2有什么区别,我什么时候用前者,什么时候用后者?
    谢谢。后者一般被命名为CreateXXXX。在三种情况下适用:一、所获得的对象不仅仅与所传入的参数有关,为了明确语义,不用构造函数。二、对象的构造函数在很多时候可能导致失败,为了避开异常处理提高效率,不使用构造函数,例如构造WebRequest。三、依据参数的不同,所构造的对象是不同的派生类对象。这就是常说的类工厂了,例如WebRequest的构造也是工厂模式的,如果协议是Http,则构造的对象就是HttpWebRequest了。
      

  3.   

    你的这个问题没有多大价值阿,哈哈,这是我的个人观点,别介意我认为:
      ClassName name1 = new ClassName();
      ClassName name2 = ClassNameMethod();
    都是得到 类ClassName 的一个实例对象的引用,只是获得的途径不同而已;
    就如:
      你想去北京,你可以自己走过去;也可以坐火车过去把,只是到达的方式不同。在何种情况下用他们,要视实际情况而定。
      

  4.   

    二者本质上没有区别,ClassName name2 = Factory.ClassNameMethod();归根结底还是要调用new ClassName()来创建类的实例的。
      

  5.   

    class A
    {
    }
    class B
    {
      public static A GetA()
      {
       return new A();
      }
    }
     A a=new A(); 实例化类A关返回类A的引用给a
     A a=B.GetA(); 通过方法GetA();实例化A,并返回A的引用给a
     一般来说一样的但是用方法实例化用他自已的用处,比较典型的就是单体模式
    class A
    {
    }
    class B
    {
      private A a;
      public static A GetA()
      {
    if(a==null){
        a=new A();
       return a;
    }
     else
       return a;
      }
    }
    通过GetA()方法来返回A的引用,确保只有一个类A被实例化