android MVP - 我可以为自定义视图和片段设置多个演示者

j2e*_*nue 9 architecture mvp android

所以我有一个已经与活动相关联的演示者.这本书说一个主持人应该绑在一个视图上.但现在我添加了一些片段和大量自定义视图.我正在考虑一个片段作为一个观点.自定义视图将包含一些逻辑.片段和自定义视图当然都包含在我的活动中.

我的问题是,我应该在片段和自定义视图中重复使用相同的演示者,还是每个视图都应该有自己的演示者?我意识到这是基于意见,但我想要最好的方法来测试和保持代码清洁.

如果我确实为所有这些少数人提供了一个演示者,那么接口演示者使用将有许多回调方法.同时,如果我做了相反的操作并为每个视图创建了一个演示者,那么它可能更容易阅读,但我将如何测试呢?

Jem*_*rov 8

View (Activity)可以有多个Presenters.如果有多个CustomViewsfor Activity,你可以有一个巨人PresenterPresenter每个CustomView.这取决于:

  1. 如果所有CustomViews共享相同的需求,一个Presenter为所有CustomViews就够了.Presenter's范围还有两个选项:

    • PresenterActivityScope.Activity使用Presenter和调用Presenter.然后发送命令,数据到CustomViews
    • PresenterViewScope.每个CustomView创造和破坏相同Presenter

    如果CustomViews不共享相同的需求,拥有一个,Presenter并且ViewInterface,它们将包含所有CustomViews需求的方法,因此每个CustomView都必须实现所有声明的方法ViewInterface,留下一些空.

  2. 如果CustomViews有不同的需求和方法调用Presenter,他们应该有自己的Presenter.

  3. 如果CustomViews有不同的需求和一些共同的需求,他们在一个Presenter特定需求中有共同的需求Presenters.示例:ActivityOnehas CustomViewOneCustomViewTwo.常见的Presenter两种CustomViews可能FeedPresenter(同时考虑CustomViews已订阅列表).然后,CustomViewOne将有CustomPresenter1CustomViewTwoCustomPresenter2满足其特定需求.