我一直在阅读一些关于干净架构的文章,以及如何在 android 中实现它。我看到了显示其 Android 实现的示例应用程序。此外,我还进行了一次关于 Android 上的清洁架构的精彩演讲
所以,我有点理解大多数概念,但我想对某些事情进行一些澄清。
根据我的理解,
- View 层是处理 UI 和框架相关内容的外层
- 演示者是视图的直接通信者,它接受用户输入,并通过将其传递给用例层或交互器层来执行基于此的某些用例。
- 交互者执行用例,将其返回给演示者发送的回调,
- Presenter 再次将此结果转换为视图可理解的数据结构(ViewModel)并将其传递回视图。
我没有列出有关存储库等内层的更多详细信息,因为我的问题与上述步骤有关
在这里,presenter 的唯一工作是充当 UseCases 和 UI 之间的中介,作为数据调度员吗?
它是否只对视图模型进行用例模型转换,反之亦然?
输入验证逻辑依赖于哪一层?它可以在演示者内部吗?例如,如果我们采用一个注册过程的小用例,
一旦用户输入详细信息并单击注册按钮,数据发送给演示者,是不是像
- 如果存在任何错误,Presenter 会验证输入值并通知视图
- 如果值正确,则将其转换为用例模型,并执行某些用例,一旦交互器给出结果,再次转换为视图模型,将其发送到视图。
第二个问题是,谁控制导航?视图还是演示者还是用例?
谁决定下一步去哪里?
例如 - 考虑一个登录过程的用例,用户将在其中输入凭据并单击确定。
登录成功后,
- 如果用户电子邮件未通过验证,请转到电子邮件验证屏幕
- 如果用户配置文件未完成,请设置配置文件,然后仅转到主屏幕
- 如果用户是新用户,则显示新优惠屏幕,否则直接转到主屏幕
那么,谁负责在接下来的屏幕上做出这些决定呢?是演示者,它相应地决定和导航视图吗?还是用例处理程序负责通知演示者下一个状态是什么?
对不起,问题太长了,但我只是想详细说明我目前的理解。提前致谢