如果是这样,我应该从视图层管理应用程序的导航吗?
解决方法 是的,这是一个反mvp模式.基于MVP中的 passive view,您失去了可测试性,因为您不必在演示者中处理AndroID框架.所以最好从视图层管理应用程序的导航.
class MyPresenter { MyPresenter.VIEw vIEw; voID backbuttonClicked() { vIEw.navigatetoHomeScreen(); } public interface VIEw { voID navigatetoHomeScreen(); }}class MyActivity extends Activity implements MyPresenter.VIEw { @OverrIDe voID navigatetoHomeScreen() { startActivity(...) } @OnClick(R.ID.my_button) voID onClick() { presenter.backbuttonClicked(); }}@H_419_11@这种方式的另一个优点是,使用片段或视图来替换活动将很容易.
编辑1:
Morgwai表示这样会打破分离关注和单一责任,但是你不能在每一个地方都有单一的责任.有时你需要违反它.以下是Google for MVP的一个例子:
TaskDetailPresenter
调用ShowEditTask
,它负责在TaskDetailFragment中打开一个新的Activity.但也可以使用CommandPattern这是一个更好的方法
interface NavigationCommand { voID navigate();}@H_419_11@所以,Presenter会在需要的时候使用它.
总结以上是内存溢出为你收集整理的Android MVP打开活动从Presenter,反模式?全部内容,希望文章能够帮你解决Android MVP打开活动从Presenter,反模式?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)