正如你所看到的Google's样本(https://github.com/googlesamples/android-architecture https://github.com/googlesamples/android-architecture), Activities
create Presenters
. Also Views
附加到Activity
and Presenters
获取视图(Fragments
) 作为参数。
After Fragment
已提交的交易或Fragment
(视图)状态恢复Presenters
被创造并采取Fragments
(视图)作为参数而不是调用
view.setPresenter(T presenter);
观点和方法Presenters
注册即可查看。
我认为创造Presenter
in Fragment
这不是一个好的做法。首先他们是单独的层。这是非法的关注点分离。其次,如果您在中创建演示者Fragment
,你将 Presenter 的生命绑定到 view 的生命LifeCycle
什么时候Fragment
被破坏并重新创建,您创建一个新的演示者,但它们是不同的层。
该模型是定义要在用户界面中显示或以其他方式操作的数据的界面。
主持人作用于模型和视图。它从存储库(模型)检索数据,并将其格式化以在视图中显示。
The view是一个被动接口,它显示数据(模型)并将用户命令(事件)路由到演示者以对该数据采取行动。
So Activity
可以充当overall controller
这创造了Presenters
and Views
并将它们连接起来。
如果我们谈论您的问题,是的,您可以在片段中注册演示者。但是您应该避免在用作视图的片段中创建演示者。
但是 Android 社区中有很多关于 MVP 模式的不同方法,如下所示。https://plus.google.com/communities/114285790907815804707 https://plus.google.com/communities/114285790907815804707
为什么活动不是 ui 元素?http://www.techyourchance.com/activities-android/ http://www.techyourchance.com/activities-android/