【问题标题】:What advantages of factory constructor over standalone factory class or function?工厂构造函数相对于独立工厂类或函数有什么优势?
【发布时间】:2019-01-19 04:37:31
【问题描述】:

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

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

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

【问题讨论】:

标签: dart factory


【解决方案1】:

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

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

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

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

【讨论】:

  • 我明白了,它对于创建同一个类的实例更有用。当我添加新的派生类时,有什么方法可以更新工厂构造函数?(对于抽象类在库中的情况)
  • 不确定我是否听懂了你的问题。能举个例子吗?
  • 给定带有abstract class 的lib 和一些具体的实现。抽象类有factory costructor 可以构造这些具体的实现。当我添加自己的实现时,我需要更新该工厂构造函数以支持我的类。有没有办法做到这一点,或者我需要为此实现独立功能?
  • 虽然看起来完全没有意义。为什么不在这个用例中使用静态函数?
猜你喜欢
  • 1970-01-01
  • 2019-02-17
  • 2012-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-18
  • 2021-02-07
  • 1970-01-01
相关资源
最近更新 更多