【发布时间】:2020-06-05 23:35:47
【问题描述】:
我在尝试找到在 Dart 中使用观察者模式的标准方法时遇到了麻烦;我发现的几乎所有东西都非常过时或带有已弃用的软件包。
我要找的很接近this answer(过时的),其中@observable用在一个属性之上,然后你就可以监听到属性的变化了(非常类似于TypeScript中的Angular )。使用ChangeNotifier 类也可以达到类似的效果,但它位于其中一个 Flutter 包中(foundation),所以我认为这不是标准方式,否则它将是一个简单的 Dart 包。
我还发现了另外 2 个简洁的软件包,它们确实提供了与我的想法相近的东西:property_change_notifier 和 simple_observable。
无论如何,我想知道是否有一个简单的方法可以将 Observer 功能添加到类属性中。我正在考虑将属性(实际上是基于该属性的另一个 getter)转换为Stream,每次调用该属性上的设置器时,yield 都会产生一个新值。或者让 setter 也将 Stream 作为参数,并在属性更改后将值传递给 Stream(是否可以在外部将值附加到 Stream?)。
【问题讨论】:
标签: asynchronous flutter events dart observer-pattern