工厂构造函数相对于独立工厂 class 或函数有何优势?

What advantages of factory constructor over standalone factory class or function?

我刚开始学习 Dart,我想知道 factory constructor 相对于独立工厂 class 或函数有什么优势?

当我们添加新的派生 class 时,我们需要在我们的抽象 class 中更改工厂方法,如果我们有它的代码就没问题,但如果它带有库 - 工厂构造函数变得没用了?

或者有某种机制可以使用派生的 classes 的信息更新工厂方法?如果是这样,请分享一个例子。

factory 让你 return 子类型,这非常有用。

例如,您可以有 factory MyClass.empty => const _EmpytMyClass() 和 return 没有存储的简单实现。

如果您想拥有 class.

的规范实例,您也可以使用它来 return 缓存值

您还可以使用 factory 调用方法来创建您的实例。看这里:https://github.com/dart-lang/json_serializable/blob/4033f6ad4e3c96bc2ed16d93c0995e11fcfe42df/example/lib/example.dart#L29