Presenter中的资源/应用上下文(MVP架构)

时间:2018-10-15 15:45:58

标签: android dependency-injection mvp android-context presenter

我需要根据Comparator使用Resources对列表进行排序。列表(数据)是从存储库(模型层)加载的。如果出现以下情况,我该怎么办  演示者不应该访问Context?我应该注入已经创建的Comparator吗?

new ProductsPresenter(new ProductsRepository(), productsFragment, new ProductsComparator(context))

(prodcutsFragment是一个View层)

  1. 对吗?
  2. 如果演示者需要使用更多的Context依赖类,该怎么办?如果将它们全部注入,则构造函数将具有很多参数。

Here是Android蓝图中的代码,例如,我想根据资源来添加Comparator对列表进行排序。

1 个答案:

答案 0 :(得分:0)

1-是的。一种改进是使用某种依赖库(例如Dagger)直接注入实例,因此您不必在构造函数中编写new

2-恕我直言,最好的方法是直接插入类,而无需使用Context,以使Presenter与Android SDK脱钩,因此您可以更轻松地对其进行测试