【问题标题】:What is the correct way to pass repository from main.dart to widgets as per Clean Architecture?根据 Clean Architecture 将存储库从 main.dart 传递到小部件的正确方法是什么?
【发布时间】:2021-06-09 13:27:03
【问题描述】:

我正在尝试在 Clean Architecture 中实现(试用)应用程序。它只是一个简单的应用程序,在从 Web api 获取数据后显示数据。如果我没记错(如果我错了请告诉我),(最低)正确的方法是有

  • 一个实体(一个具有由 web api 提供的确切字段的类),一个数据提供者(一种从 web api 获取数据的机制),一个代表应用程序数据处理的存储库,模型类可用于保存格式化数据(要加载到小部件)。

  • 可用于显示数据的小部件和main.dart文件(应用程序的入口点)

现在我想知道在 main.dart 文件中设置存储库是否正确,例如:

void main() {
  runApp(MyApp(
      ARepository(
          AWebClientDataProvider:
          AWebClientDataProvider()
      )
  ));
}

然后我必须将存储库传递给小部件。我曾尝试使用“Provider”包,但它不起作用(因为它必须在 initState() 中工作)。目前,我通过小部件的构造函数传递存储库来使其工作(有更好的方法吗?)。

【问题讨论】:

    标签: flutter clean-architecture


    【解决方案1】:

    这绝对没问题,也是推荐的方式。您应该始终尝试对构造函数进行依赖注入,以符合 SOLID 的依赖反转原则。

    但手动管理所有依赖项实际上很乏味。所以强烈推荐使用 GetX 之类的东西来管理你的依赖。

    【讨论】:

    • 感谢您的提示。
    猜你喜欢
    • 1970-01-01
    • 2017-08-28
    • 2020-01-23
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    相关资源
    最近更新 更多