[英]How is the presenter created in MVP?
我正在查看MVP的google示例,并将其视为活动onCreate
中的最后一条语句:
new TaskDetailPresenter(
taskId,
Injection.provideTasksRepository(getApplicationContext()),
taskDetailFragment);
这段代码对我来说很奇怪。
它实例化了一个本地对象( TaskDetailPresenter ),该对象没有在任何地方分配,并且将片段与演示者相关联。
此处定义的类
这真的应该完成吗? 因为对我来说这似乎不是一个好习惯
在TaskDetailPresenter
构造函数中,它们具有:
mTaskDetailView.setPresenter(this);
因此,presenter对象将传递到片段(MVP中的“视图”)。 该片段存储了对演示者的引用。 可以-View可以通过此配置轻松与其演示者进行通信。
但是他们在这里使用的技巧-在构造函数完成之前调用setPresenter(this)
是一件坏事。 在这里,您可以找到有关此问题的说明: http : //www.javapractices.com/topic/TopicAction.do?Id=252
如果该引用仅保存到属性中并且所有事情都在一个线程中发生,那可能没问题。 但是将来可能会发生某些变化,我们可能会遇到麻烦。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.