Всем привет!
У меня есть абстрактный класс Control и его наследники: CheckBox, Select, Date... , пара десятков. В них есть данные и логика. Хочу в рантайме создавать экземпляры этих классов по их названию. Можно так:
if (clazz === 'cbox') return new CheckBox();
// и ещё два десятка IF
Или через длинный switch-case.
А есть ли способ лучше? Например, в MAP поместить пары:
const controlMap = new Map<string, Control>([
['cbox', что-то-такое ],
['date', что-то-такое ],
// 20 строчек
]);
из которых можно получать новые экземпляры.
Или ещё каким способом?