Scoped Model、BLoC pattern、StreamBuilder 和 Inherited Widget(或 Model)我应该选择哪一个,为什么?

Scoped Model, BLoC pattern, StreamBuilder and Inherited Widget(or Model) which one should I chose and why?

我想我现在至少对如何使用 BLoC, [=12 有了一个模糊的认识=]Stream Builder and Inherited Widget(or Model ) 在我的应用程序中(没什么特别的,但对我来说这需要时间),但是玩 Scoped 模型
我有一种生存危机:我觉得他们大多可以做同样的事情,或者至少我可以和他们中的任何一个取得同样明显的结果,但我没有能力理解 为什么一个比另一个好。

Scoped 模型与 Bloc

简而言之:如果您有小型应用程序,请使用 scoped models,因为 bloc 会使它复杂化,如果您有大型应用程序,请使用 bloc.
详细解释见这篇文章:bloc vs scoped_model


Stream Builder 与 Inherited Widget

这是 Remi Rousselet 给出的 stream builderinherited widget 之间的一个很好的比较:

Streams/Sink绝对是极好的存储状态。有一些现有的架构,比如BLoC,用的比较多。

但是,Streams 也没有完全取代 InheritedWidgetInheritedWidget 具有很酷的功能,可以仅覆盖屏幕的一部分内容。一个很酷的应用是 Theme.

一般来说,Streams很适合存储业务逻辑。但是当需要存储UI逻辑时,InheritedWidgets占上风。