У меня есть много объектов одного и того же базового типа. Я хочу создать общую функцию для их создания. Пример кода:
class Grid extends Display { ....
class Start extends Display { ....
class MainClass {
Grid grid;
Start start;
....
}
в методе MainClass вместо этого:
start = new Start();
start.load(PATH);
grid = new Grid();
grid.load(PATH);
....
Я хотел бы сделать что-то вроде этого:
void _newDisplay(dynamicType, Display display) {
display = new dynamicType();
display.load(PATH);
}
_newDisplay(Start, start);
_newDisplay(Grid, grid);
....
Я прочитал http://www.dartlang.org/articles/Optional-Types/ но не нашел именно то что хотел.
Я также нашел Создание экземпляра класса из строки, но есть комментарий, говорящий : «Примечание: это может не работать при компиляции в JavaScript. Компилятор dart2js еще не полностью поддерживает зеркала». Является ли это «зеркальное» решение единственным доступным для динамического создания экземпляров?