清洁架构:在哪里实现分页逻辑?

时间:2018-01-20 12:34:50

标签: android mvp clean-architecture

有一个REST API,用户输入的搜索关键字用于查询和获取结果。有时会返回太多结果。我不想在服务器端设置最大结果限制,所以我想在应用程序上处理它。在应用程序中,我尝试关注Clean Architecture。我有一个片段,一个演示者,一个用例和一个API客户端。用户输入关键字,按下搜索按钮,关键字通过演示者传递给相关的用例函数。 Usecase从API客户端获取结果,并通过侦听器将结果传递给演示者。 Presenter通知片段以显示结果。

我想要显示最多十页的结果。我应该把这个控件放在哪里?用例或演示者?

2 个答案:

答案 0 :(得分:2)

如果您要严格将其设为十页,请将其放在用例上,因为此处应用程序业务规则存在。因此,如果你总是要通过十次,那么你就不需要通过它。

但是,我建议在演示者上将其设为参数,以使其更加灵活,因为您可能会想要调整最大页面的方案具体activity/fragment

答案 1 :(得分:0)

分页是您网域的一部分吗?如果不是,您可能希望拥有单独的查询接口/流。使用域存储库进行基于写入的操作。加载实体,更新,保存。对于查询,有一个不同的接口,可以启用查询和过滤操作。用户案例仍然存在。输入仍然具有参数,但您的域存储库api是干净的。您甚至可以使用相同的数据库类来实现查询API。