类设计-从字符串数据创建对象



我正在研究通用图灵机的简单应用程序。我有一个数据可以创建机器,我的问题不是关于UTM,我只想在这个应用程序上说明它。我需要从字符串数据创建一个对象,例如,这个方法创建了我的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类中拥有这样的方法是个好主意吗?还是应该将它们分离到另一个/工具类中?这个问题的投注做法是什么?

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

在RawData的另一个类中使用这个方法怎么样?RawData将具有静态工厂方法,用于从数据创建不同的对象。

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

最新更新