首页 > 解决方案 > Flutter 设计模式:有什么最值得推荐的吗?

问题描述

我来自 Android 开发背景,是 Flutter 的新手,我了解了基本的层次结构小部件概念和它的库。就像 Android 有 MVP 、 MVVM 和 MVI 等设计模式一样,Flutter 编程有什么流行的设计模式吗?

标签: flutter

解决方案


Flutter 应用程序与 State 和 Streams 一起使用,据我所知,这里有 2 种主要模式,redux 和 BLoC。

还原:

Redux 是一个应用程序状态管理框架。换句话说,它的主要目标是管理一个国家。Redux 是围绕以下原则构建的:

  1. 单向数据流

  2. 一店

Store 就像 Redux 的协调器。商店:

  • 只存储一个状态
  • 公开一个入口点,称为调度,它只接受参数中的动作
  • 公开一个 getter 以获取当前状态
  • 允许(取消)注册以被通知(通过 StreamSubscription)应用于状态的任何更改
  • 将动作和存储分派到第一个中间件
  • 将动作和当前状态分派给 Reducer(可能是多个 reducer 的外观)

行动

操作是商店访问点接受的唯一输入类型。中间件和 Reducer 使用动作与当前状态相结合来处理某些功能,这可能导致修改状态。

行动只描述发生了什么

中间件

中间件是一个通常旨在异步(但不一定)运行的函数,基于一个动作。中间件仅使用状态(或操作作为触发器)但不会更改状态。

减速机

Reducer 通常是一个同步函数,它基于 Action - State 的组合进行一些处理。处理的结果可能会导致一个新的状态。Reducer 是唯一允许更改状态的。

你可以在这里找到更多关于 redux 的信息

集团

BLoC 模式不需要任何外部库或包,因为它仅依赖于 Streams 的使用。但是,对于更友好的功能(例如主题),它经常与RxDart 包结合使用。

BLoC 模式依赖于:

流控制器

StreamController 公开了一个 StreamSink 以在 Stream 中注入数据,并公开一个 Stream 以侦听在 Stream 内部流动的数据。

流生成器

StreamBuilder 是一个 Widget,它侦听流并在 Stream 发出新数据时重建。

流订阅

StreamSubscription 允许监听流发出的数据并做出反应。

块提供者

BlocProvider 是一种方便的 Widget,通常用于保存 BLoC 并使其可供后代 Widget 使用。

这是一篇关于Flutter BLoc的文章


推荐阅读