0

I have an object with a method that reads a file and for each line that is read, it parses the data into an object.

For example:

public class test{
     private void processData{
        while((input = bf.readLine()) != null){
             test t = new test();
        }
    }
 }

Is it correct to do that in a method rather than the main method? Why or why not?

4

5 回答 5

1

如果这是解决您的问题的最佳解决方案,那么递归创建新对象的风格也不错。

于 2013-09-30T20:12:35.813 回答
0

是的,很少有设计模式可以创建自身或内部类的实例(单例、生成器、工厂模式)。

我认为您的示例不可用,虽然您可以在外部创建对象,但无法访问您的私有方法。

xdesperadox 的示例也不完整。缺少私有构造函数,是的,您必须将实例存储在私有静态字段中,以便下一次调用 newInstance() (返回相同的实例。

于 2013-09-30T20:24:42.113 回答
0

是的,没关系,您可以在任何地方创建类的实例。

但是为了一个好的做法,避免创建新对象,但如果需要,您可以创建对象。

于 2013-09-30T20:12:38.260 回答
0

主要是调用自己,或者换句话说,创建在解析/生成期间可以看到的相同类型的类XMLJson或者如果您的 Object 表示每个节点可以存储其他节点的数据

从您的示例中,由于您此后不调用processData 可能导致无限循环,因此可以。

于 2013-09-30T20:13:24.077 回答
-1

不,这不是因为单例模式只是基于此。

public static Test newInstance(){
    if(instance==null){
        instance = new Test();
    }
    return instance;
}

有关详细信息,请参阅单例模式。

于 2013-09-30T20:16:39.777 回答