类设计 - 从String数据创建对象?

时间:2013-12-08 09:18:24

标签: java class constructor

我正致力于通用图灵机的简单应用。我有一个数据来创建机器,我的问题不是关于UTM我想只在这个应用程序上说明它。我需要从String数据创建一个对象,例如这个方法创建了我的UTM的一个转换函数:

public static Transition createFromData(String data) {

    Transition trans = new Transition();
    String[] dataSplitted = data.split("1");
    trans.setInputState(new State(dataSplitted[0]));
    trans.setInputSymbol(dataSplitted[1]);
    trans.setNewState(new State(dataSplitted[2]));
    trans.setNewSymbol(dataSplitted[3]);
    trans.setMovement(Movement.getByCode(dataSplitted[4]));

    return trans;

}

从类设计的角度来看,在Transition类中使用这样的方法是否是好主意,还是应该将它们分离到另一个/工具类?这个问题的实践是什么?

2 个答案:

答案 0 :(得分:1)

使用tools / utils类总是让我想起结构化编程;)但是如果你在Transition类上只有一个构造函数会接收原始数据并用它创建一个新的过渡对象会有所帮助。由于每次找到一些原始数据时都会创建一个新的转换,因此最适合的是构造函数(或者可能是工厂方法,但这是另一个讨论)

答案 1 :(得分:0)

如何在另一个类中使用此方法,例如:RawData,它将具有用于从数据创建不同对象的静态工厂方法。

在您的情况下,您可以让一个方法返回Transition对象,然后您可以拥有多个方法,每个方法都会返回一个不同的对象,具体取决于数据在该对象中的组织/表示方式。