所以我有一个已经与活动挂钩的演示者。这本书说一个主持人应该绑在一个视图上。但现在我添加了一些片段和大量自定义视图。我正在考虑一个片段作为一个观点。自定义视图将包含一些逻辑。片段和自定义视图当然都包含在我的活动中。
我的问题是,我应该在片段和自定义视图中重复使用相同的演示者,还是每个视图都应该有自己的演示者?我意识到这是基于意见的,但我想要最好的方法来测试和保持代码清洁。
如果我为所有这些少数人准备了一个演示者,那么接口演示者使用将有许多回调方法。同时,如果我做了相反的事情并为每个视图创建了一个演示者,那么它可能更容易阅读,但我将如何测试呢?
答案 0 :(得分:8)
View (Activity)
可以有多个Presenters
。如果CustomViews
有多个Activity
,则每个Presenter
可以有一个巨人Presenter
或CustomView
。这取决于:
如果所有CustomViews
共享相同的需求,则所有Presenter
的{{1}}就足够了。 CustomViews
范围仍有两个选项:
Presenter's
有 ActivityScope 。 Presenter
使用Activity
并从Presenter
调用。然后将命令,数据发送到Presenter
CustomViews
有 ViewScope 。每个Presenter
都会创建并销毁相同的CustomView
如果Presenter
没有共享相同的需求,只有一个CustomViews
和Presenter
,它们将包含所有ViewInterface
需求的方法,因此每个CustomViews
必须在CustomView
中实现所有声明的方法,留空。
如果ViewInterface
对CustomViews
有不同的需求和方法调用,则他们应该拥有自己的Presenter
。
Presenter
有不同的需求和一些共同需求,那么他们就会在CustomViews
个Presenter
中分享共同的需求。 示例:Presenters
有ActivityOne
和CustomViewOne
。两个CustomViewTwo
的常见Presenter
可以是CustomViews
(考虑到两个CustomView都有Feed列表)。然后,FeedPresenter
将CustomViewOne
,CustomPresenter1
将CustomViewTwo
满足其特定需求。答案 1 :(得分:4)
最佳做法是创建一个basepresenter,然后为每个实现basepresenter的视图创建演示者