Dart Style Guide рекомендует использовать constructors instead of static methods to create instances, учитывая, что "названные Конструкторы и завода Конструкторы в Дарта даст вам все гибкость статических методов на других языках, в то же время позволяя callsite появляться как обычный вызов конструктора ".Dart factory (конструктор) против статического метода; например, почему int.parse() не является заводским конструктором?
Есть ли какая-то техническая причина для того, чтобы объявить int.parse()
и double.parse()
статическими методами, а не заводскими конструкторами?
В целом, каковы были бы рекомендации по выбору фабричного конструктора над статическим (заводским) методом в Dart?
Да, это кажется немного непоследовательным. 'new int.fromString()' будет иметь больше смысла с этой точки зрения. Хотя 'int.parse()' чувствует себя более естественным. – ronag
Это вполне может быть другим специальным способом для достижения целей, но это действительно просто дикое догадка. – MarioP
@MarioP: Да, я думаю, это имеет смысл. Однако я бы надеялся, что компилятор достаточно хорош для оптимизации того, что такое специальное обращение не требуется. – ronag