несколькими конструкторами
В отличие от Java и С#, Dart не поддерживает перегрузку функций, методов и конструкторов (то есть возможность определять функции с одинаковыми именами, но разными списками параметров). Тогда как же удается иметь несколько конструкторов для создания экземпляров класса разными способами?
В Java или C# мы завели бы несколько одноименных конструкторов с разными сигнатурами. Dart же предлагает иной механизм, напоминающий префиксы библиотек, Dart рассматривает имя класса как префикс конструктора и позволяет использовать именованные конструкторы с различными именами (и, если необходимо, разными параметрами)
насколько это будет правильный разумный код?
Из опыта скажу что именованные конструкторы не так часто встречаются(практически никогда). Чаще встречаются factory конструкторы. Самый частый кейс использования именованного конструктора - приватный конструктор. У factory конструктора есть пару преимуществ перед именованным(в частности возможность возвращать инстанс не только класса, в котором он объявлен, а так же класса наследника).
Обсуждают сегодня