我正在尝试在我的Android项目中实现MVP。但是当我使用viewPagerAdapter时,实现MVP变得困难。为了实现MVP,我们需要在Activity类中创建片段/视图和Presenter实例。片段/视图和Presenter之间通过契约进行通信。这样,我们将视图与Presenter解耦,并使用单元测试覆盖所有业务逻辑。但是,在activity中有tablayout的情况下,我们已经初始化了fragmentPagerAdapter中的片段。我不确定如何将选项卡片段/视图引用提供给相应的Presenter。如果我在fragmentPagerAdapter中初始化presenter,那么就会违反SRP(Single responsibility principal)。如果我们在片段/视图中创建Presenter实例,则会生成耦合代码,然后我们不需要contact来建立片段/视图和Presenter之间的通信。请提供架构解决方案,以便我可以在遵守所有清洁代码原则的同时实现支持视图翻页器的MVP。
供参考,请查看以下适配器代码,其中我正在初始化选项卡片段:
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return getConfigurationsTabFragment();
case 1:
return UpdateTabFragment.newInstance();
case 2:
return ServiceTabFragment.newInstance();
default:
return null;
}
}