Android有一个包含3个片段的演示者

时间:2018-01-03 11:03:59

标签: java android mvp

这更像是Android中MVP的概念性问题。我有3个片段,我试图为所有3个片段使用1个演示者。

我对这些事情更加怀疑 -

a)在我喜欢的片段的onCreate()中创建演示者的新实例 -

presenter = new MyPresenter();
presenter.setView(this);

因此打开3个片段将创建3个演示者实例。这是个好主意吗?

b)1个片段的视图必须在第2个和第3个片段中覆盖,尽管它们没有被使用,它们只是空方法 使我的代码长度为第2和第3个片段。这是一个好主意吗?

c)虽然我在片段onDestory()的{​​{1}}中,但演示者会presenter.onDestroy()。 我拥有的super.onDestory()会破坏这样的观点 -

BasePresenter

虽然视图被破坏了,但是收集了presenetr垃圾吗?因为下一个片段将创建演示者的新实例,我不想要几个实例 运行

1 个答案:

答案 0 :(得分:2)

  

因此打开3个片段将创建3个演示者实例。这是个好主意吗?

您应该这样做,每个片段的每个演示者实例。但我建议您为特定片段创建特定的演示者。它清晰,易于改进和维护。

  

1个片段的视图必须在第2个和第3个片段中覆盖,尽管它们没有被使用,它们只是空方法,使我的代码长度为第2个和第3个片段长。这是一个好主意吗?

当然不,那是不好的代码。

  

虽然视图被破坏了,但是收集了presenetr垃圾吗?因为下一个片段将创建演示者的新实例,我不希望运行多个实例。

GC会清洁它。您在每次onCreate()调用时都创建了新的presenter实例,因此这里有三个实例。它会很干净,因为它只与特定的一个片段相关联。

希望有所帮助!