与独立工厂类或函数相比,工厂构造函数有哪些优势?

时间:2019-01-18 19:30:28

标签: dart factory

我刚刚开始学习Dart,我想知道import string d=dict(zip(string.ascii_lowercase[:3],string.ascii_uppercase[:3])) d.update(dict(zip(string.ascii_uppercase[:3],string.ascii_lowercase[:3]))) 比独立工厂类或函数有哪些优势?

当我们添加新的派生类时,我们需要在抽象类中更改工厂方法,如果有代码,这很好,但是如果它带有库,工厂构造函数就变得无用了吗?

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

1 个答案:

答案 0 :(得分:1)

factory可让您返回子类型,这非常有用。

例如,您可以拥有factory MyClass.empty => const _EmpytMyClass()并返回没有存储空间的简单实现。

如果您想拥有类的规范实例,也可以使用它返回缓存的值。

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