Выбор ответа Junior Dart: классы и миксины спрашивают часто обновлено
Dart: зачем нужен factory-конструктор
Вопрос
Чем factory-конструктор отличается от обычного?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Он может вернуть объект из кеша или экземпляр подкласса, а внутри него нет this. factory это конструктор, который сам решает, что вернуть: новый объект, объект из кеша (синглтон, пул), экземпляр подкласса.
Варианты ответа
- Он всегда создаёт новый объект, но работает быстрее обычного за счёт пропуска инициализации
- Он вызывается автоматически при десериализации JSON, если класс называется как модель
- Он может вернуть объект из кеша или экземпляр подкласса, а внутри него нет
thisправильный ответ - Он может инициализировать
final-поля через список инициализации, а обычный конструктор нет
Разбор
factory это конструктор, который сам решает, что вернуть: новый объект, объект из кеша (синглтон, пул), экземпляр подкласса. Поэтому у него нет this и списка инициализации полей. Автоматически при парсинге JSON он не вызывается: fromJson это просто договорённость имени. Список инициализации как раз есть у обычных конструкторов, а у factory нет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Dart: расширения разрешаются статически
Следующий вопрос
Dart: const и именованный конструктор