为什么Dart的Datetime.parse不是工厂构造函数?

时间:2015-01-05 23:02:52

标签: dart

Dart的Datetime类有许多命名构造函数,但DateTime.parse()不是其中之一。相反,DateTime.parse()是一个返回DateTime的静态方法。对我来说,它作为构造函数是有意义的(因为您以与Datetime.utc()构造函数没有太大区别的方式生成新的DateTime对象)。

我提出的理论是反映int.parse不是构造函数或允许更容易链接的事实(您不需要使用静态方法使用级联运算符) 。但也许还有另一个原因,我没有想到。有谁知道为什么他们没有使它成为命名构造函数?

1 个答案:

答案 0 :(得分:5)

对于Uri.parse的相同更改的更多解释:http://permalink.gmane.org/gmane.comp.lang.dart.general/17081

  

“解析”很特别。问题是:你看到解析为   做某事并最终给你结果的操作,或者做   您将字符串视为构造新元素的数据。如果你看到它   如前所述,那么“解析”应该是一个静态函数。如果你看到   字符串作为数据,那么它应该是一个命名的构造函数。

然后,当然,存在一致性。