我一直在尝试使用Reso Coder 的 Flutter对 Uncle Bob 的 Clean Architecture 的改编。
我的应用程序连接到 API,大多数请求(登录除外)都需要身份验证令牌。此外,登录后,会收到用户个人资料信息(如姓名和个人资料图片)。
我需要一种方法来在登录时保存这些数据,并在未来的 API 请求和我的应用程序的 UI 中使用它。
由于我是鲍勃叔叔的干净架构的新手,我不太确定这些数据属于哪里。以下是我提出的想法,所有这些都涉及将数据存储在User对象中:
将其存储User在存储库层的authentication功能目录中。其他存储库级别的方法可以将其传递给适当的数据源方法。
这似乎是最有道理的;调用其他 API 调用的其他存储库级方法可以User轻松使用存储的内容,将其传递给数据源层中的方法。
如果这是要走的路,我不太确定其他功能(使用 API)将如何访问User- 让一个存储库依赖于另一个存储库并将authentication存储库传递到新功能存储库可以吗?
将其存储User在存储库层的authentication功能目录中。其他(非登录)用例可以依赖于该存储库以及与其自身功能相关的存储库,并将其传递User给其存储库方法。
这也打破了垂直功能障碍,但它可能比想法 1 更清晰。
对于这两个想法,我的存储库如下所示:
abstract class AuthenticationRepository {
/// The current user.
User get currentUser;
/// True if logged in.
bool get loggedIn;
/// Logs in, saving the [User].
Future<void> login(AuthenticationParams params);
/// Logs …Run Code Online (Sandbox Code Playgroud) architecture authentication state flutter clean-architecture
是否可以在不同文件中的另一个函数的文档中显示一个函数的文档?宏仅在其自己的文件中有效。
在Flutter源码中,他们使用了这样的东西,但似乎没有任何效果:
/// {@macro flutter.widgets.editableText.keyboardType}
Run Code Online (Sandbox Code Playgroud)