这更像是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垃圾吗?因为下一个片段将创建演示者的新实例,我不想要几个实例 运行
答案 0 :(得分:2)
因此打开3个片段将创建3个演示者实例。这是个好主意吗?
您应该这样做,每个片段的每个演示者实例。但我建议您为特定片段创建特定的演示者。它清晰,易于改进和维护。
1个片段的视图必须在第2个和第3个片段中覆盖,尽管它们没有被使用,它们只是空方法,使我的代码长度为第2个和第3个片段长。这是一个好主意吗?
当然不,那是不好的代码。
虽然视图被破坏了,但是收集了presenetr垃圾吗?因为下一个片段将创建演示者的新实例,我不希望运行多个实例。
GC会清洁它。您在每次onCreate()调用时都创建了新的presenter实例,因此这里有三个实例。它会很干净,因为它只与特定的一个片段相关联。
希望有所帮助!