这更像是Android中MVP的概念性问题。我有3个片段,我试图为所有3个片段使用1个演示者。
我对这些事情更加怀疑 -
a)在onCreate()
中创建一个新的presenter实例,我喜欢这个 -
presenter = new MyPresenter();
presenter.setView(this);
因此打开3个片段将创建3个演示者实例。这是个好主意吗?
b)1个片段的视图必须在第2和第3个片段中覆盖,尽管它们没有被使用,它们只是空方法,使我的代码长度为第2个和第3个片段。这是一个好主意吗?
c)虽然我在片段onDestory()
的presenter.onDestroy()
做,但主持人将做super.onDestory()
。我拥有的BasePresenter
会破坏这样的观点 -
public void onDestroy() {
this.view = null;
}
虽然视图被破坏了,但收集的预先垃圾是什么?因为下一个片段将创建演示者的新实例,我不希望运行多个实例。
因此打开3个片段将创建3个演示者实例。这是个好主意吗?
你应该这样做,每个片段的每个presenter实例。但我建议您为特定片段创建特定的演示者。它清晰,易于改进和维护。
必须在第2和第3个片段中覆盖1个片段的视图,尽管它们未被使用,它们只是空方法,使得我的代码长度为第2个和第3个片段。这是一个好主意吗?
当然不,那是不好的代码。
虽然视图被破坏了,但收集的预先垃圾是什么?因为下一个片段将创建演示者的新实例,我不希望运行多个实例。
它将由GC清洁。您在每次onCreate()调用时都创建了新的presenter实例,因此这里有三个实例。它将是干净的,因为它只与特定的一个片段相关联。
希望它有所帮助!