Выбор ответа Junior Dart: классы и миксины спрашивают часто обновлено

Dart: зачем нужен factory-конструктор

Вопрос

Чем factory-конструктор отличается от обычного?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Он может вернуть объект из кеша или экземпляр подкласса, а внутри него нет this. factory это конструктор, который сам решает, что вернуть: новый объект, объект из кеша (синглтон, пул), экземпляр подкласса.

Варианты ответа

  1. Он всегда создаёт новый объект, но работает быстрее обычного за счёт пропуска инициализации
  2. Он вызывается автоматически при десериализации JSON, если класс называется как модель
  3. Он может вернуть объект из кеша или экземпляр подкласса, а внутри него нет thisправильный ответ
  4. Он может инициализировать final-поля через список инициализации, а обычный конструктор нет

Разбор

factory это конструктор, который сам решает, что вернуть: новый объект, объект из кеша (синглтон, пул), экземпляр подкласса. Поэтому у него нет this и списка инициализации полей. Автоматически при парсинге JSON он не вызывается: fromJson это просто договорённость имени. Список инициализации как раз есть у обычных конструкторов, а у factory нет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме