Допустим, у меня есть много похожих классов (в данном примере Units в RTS), то есть класс Unit
и подклассы UnitA
, UnitB
, UnitC
и т. Д.
Все классы модулей имеют следующий конструктор (включая Unit)
public class UnitX {
public UnitX(FileReader fr) {
...read parameters for constructing the unit...
}
}
Мой файл, содержащий параметры, имеет вид
UnitX params
UnitY params
....
и создает список всех модулей в файлебудет цикл while, подобный
Class[] params = {FileReader.class};
while(fr has more to read) {
String unitType = fr.getString();
Unit u = (Unit)
java.lang.reflect.Constructor constr = Class.forName(unitType).getConstructor(params);
Unit u = (Unit)constr.newInstance(new Object[]{fr});
list.add(u);
}
Я понял, что очень часто использую этот шаблон, когда создаю объекты из файлов.Мой вопрос, это плохая картина?Есть ли лучший способ сделать это?