Введение в статические члены в Dart
У класса в Dart бывают члены, которые относятся ко всему типу,
а не к одному объекту. Их помечают словом static.
К такому полю или методу обращаются по имени класса через
точку, без переменной с экземпляром. Общий счетчик созданных
записей, подпись вида контента, команда вывести накопленное
значение - типичные примеры для Post.count,
Post.kind и Post.showCount().
Статическое поле хранит одно значение на весь тип. Его читают
и меняют из конструкторов и методов объектов, а снаружи -
через ClassName.field. Так удобно вести общее состояние:
сколько объектов уже создано, последняя ошибка, накопленный
итог. Отдельный экземпляр для каждого такого значения не
нужен.
Константы времени компиляции задают через static const.
Фабричный конструктор помечают словом factory:
он не обязан каждый раз создавать новый объект, может вернуть
готовый экземпляр или подтип, а тело строят только из
return без списка инициализации и без this.
Приватный конструктор с ._() и полем
static final ... instance задают один экземпляр
на программу - к нему обращаются как Post.instance.
Раздел опирается на основы классов: поля, методы, приватные
имена с _, конструкторы и именованные конструкторы.
Дальше по порядку разберем статическое поле и метод,
константу, фабрику, один общий экземпляр и задачи на
закрепление.