我已经做了很多研究,并试图在我的应用程序中使用带有干净架构的mvp,但是我仍然有很多困惑,不完全理解它。我最大的疑问是:非数据库相关的,比如复杂的数学计算,逻辑应该去哪里?我在互联网上找到的每一个示例应用程序都必须简单地从数据库中保存和检索一些数据。
例如,我有一个屏幕,用户需要在其中插入4个值,然后我有代码获取这些值,执行一些计算并返回表示要显示的数据的对象。
我现在的问题是:我应该将负责在具有以下结构的干净架构项目中生成结果的类或代码放置在何处:
view <--> presenter <--> use cases <--> repositories
视图将输入发送给演示者,但是?还有许多示例使用不同的“服务”类,其中一些类连接到Presenter,另一个连接到Repository。

最佳答案

用例是模型的一部分。在模型中有数据(pojo定义数据如何存储在内存中)和用例。
作为这种复杂的数学计算,您的所有业务逻辑都必须在一个或多个用例中。
视图将获取数据并将其传递给演示者,演示者应该创建一个线程(在异步运行代码的众多方法中,我喜欢使用threadpoolexecutors)来运行用例,该用例将完成数学运算并回答演示者的问题。最后,演示者将数据发送回视图。
除非您必须检索任何数据(从传感器、文件、数据库、url响应…)或永久存储它,否则在这种情况下,我认为您不需要存储库。

07-26 09:32
查看更多