如何在 Flutter 应用程序中使用 Clean Architecture 处理全局事务?
How to handle global things with Clean Architecture in Flutter apps?
我已经完成了 Reso Coder 教程在 Flutter 应用程序中使用 TDD 清洁架构。但有两点对我来说很有趣:
如果我们有像 Loading
、Failure
、Empty Case
等全局小部件,在哪一层以及我们如何存储它们以便从任何层访问特征?可以在 core
文件夹中创建像 widgets
这样的文件夹来存储这些小部件吗?
如果我们在不同的页面、不同的功能中有相同的 API 调用或相同的本地数据,我们如何存储它们?是否可以创建本身没有视图的独立功能,仅包含其他功能的 domain
和 data
层?
通过检查您的存储库,我猜您是在谈论您的 FailureWidget
和 LoadingWidget
,而“全局小部件”是指在您的应用程序的多个功能中使用的小部件。现在回答你的问题:
在我看来,您绝对可以将在多个功能中共享的小部件放在 core/
文件夹中,但我建议您与不同的层保持某种连贯性。我的意思是小部件应该放在 presentation
子文件夹中,因为只有您的表示层应该依赖于它们。
lib/
|- core/
| |- presentation/
| | |- loading_widget.dart
| | |- failure_widget.dart
对于要在多个功能中重复使用的 API 调用也是如此,您可以将它们放在 core/
.
的 data/
子文件夹中
lib/
|- core/
| |- data/
| |- data_sources/
我已经完成了 Reso Coder 教程在 Flutter 应用程序中使用 TDD 清洁架构。但有两点对我来说很有趣:
如果我们有像
Loading
、Failure
、Empty Case
等全局小部件,在哪一层以及我们如何存储它们以便从任何层访问特征?可以在core
文件夹中创建像widgets
这样的文件夹来存储这些小部件吗?如果我们在不同的页面、不同的功能中有相同的 API 调用或相同的本地数据,我们如何存储它们?是否可以创建本身没有视图的独立功能,仅包含其他功能的
domain
和data
层?
通过检查您的存储库,我猜您是在谈论您的 FailureWidget
和 LoadingWidget
,而“全局小部件”是指在您的应用程序的多个功能中使用的小部件。现在回答你的问题:
在我看来,您绝对可以将在多个功能中共享的小部件放在 core/
文件夹中,但我建议您与不同的层保持某种连贯性。我的意思是小部件应该放在 presentation
子文件夹中,因为只有您的表示层应该依赖于它们。
lib/
|- core/
| |- presentation/
| | |- loading_widget.dart
| | |- failure_widget.dart
对于要在多个功能中重复使用的 API 调用也是如此,您可以将它们放在 core/
.
data/
子文件夹中
lib/
|- core/
| |- data/
| |- data_sources/