我刚刚开始学习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])))
比独立工厂类或函数有哪些优势?
当我们添加新的派生类时,我们需要在抽象类中更改工厂方法,如果有代码,这很好,但是如果它带有库,工厂构造函数就变得无用了吗?
是否有某种机制可以使用有关派生类的信息来更新工厂方法?如果是这样,请分享一个例子。
答案 0 :(得分:1)
factory
可让您返回子类型,这非常有用。
例如,您可以拥有factory MyClass.empty => const _EmpytMyClass()
并返回没有存储空间的简单实现。
如果您想拥有类的规范实例,也可以使用它返回缓存的值。
您还可以使用factory
调用方法来创建实例。参见此处:https://github.com/dart-lang/json_serializable/blob/4033f6ad4e3c96bc2ed16d93c0995e11fcfe42df/example/lib/example.dart#L29