根据Clean Architecture,将存储库从main.dart传递到小部件的正确方法是什么



我正在尝试在Clean Architecture中实现一个(试用(应用程序。它只是一个简单的应用程序,在从web api获取数据后显示数据。如果我没有错(如果我错了,请通知我(,(至少(正确的方法是使用

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

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

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

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

然后我必须将存储库传递给小部件。我试过用";提供者";包,但它不起作用(因为它必须在initState((中起作用(。目前,我通过小部件的构造函数传递存储库来实现它(有更好的方法吗?(。

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

但是手动管理所有依赖关系实际上是很乏味的。因此,强烈建议使用GetX之类的工具来管理您的依赖关系。

最新更新