android MVP - 我可以为自定义视图和片段设置多个演示者吗
android MVP - can I have multiple presenters for custom views and fragments
所以我有一个已经绑定到 activity 的演示者。这本书说一个演示者应该绑定一个视图。但现在我添加了一些片段和大量自定义视图。我也在考虑将一个片段作为一个视图。自定义视图将包含一些逻辑。当然,片段和自定义视图都包含在我的 activity 中。
我的问题是,我应该在片段和自定义视图中重复使用相同的演示者,还是每个视图都应该有自己的演示者?我意识到这都是基于意见的,但我想要测试和保持代码清洁的最佳方法。
如果我确实有一个演示者来处理所有这些,那么演示者使用的界面将包含许多回调方法。同时,如果我做相反的事情并为每个视图创建一个演示者,它可能更容易阅读,但我将如何测试它?
最佳做法是创建一个 basepresenter ,然后为每个实现 basepresenter 的视图创建 presenter
View (Activity)
可以有多个Presenters
。如果 Activity
有多个 CustomViews
,则每个 CustomView
可以有一个巨型 Presenter
或 Presenter
。这取决于:
如果所有 CustomViews
都有相同的需求,一个 Presenter
满足所有 CustomViews
就足够了。 Presenter's
范围还有两个选项:
Presenter
有 ActivityScope。 Activity
使用 Presenter
并从 Presenter
调用。然后发送命令,数据到CustomViews
Presenter
有 ViewScope。每个 CustomView
创建和销毁相同的 Presenter
在 CustomViews
不共享相同需求的情况下,有一个 Presenter
和 ViewInterface
,它们将包含所有 CustomViews
需求的方法,因此每个 CustomView
必须实现 ViewInterface
中所有声明的方法,留一些空。
如果CustomViews
对Presenter
有不同的需求和方法调用,他们应该有自己的Presenter
.
- 如果
CustomViews
有不同的需求,也有一些共同的需求,他们在一个 Presenter
中有共同的需求,在他们自己的 Presenters
中有特定的需求。 示例:ActivityOne
有 CustomViewOne
和 CustomViewTwo
。 CustomViews
的共同 Presenter
可以是 FeedPresenter
(考虑到两个 CustomViews 都有 Feed List)。然后 CustomViewOne
将有 CustomPresenter1
而 CustomViewTwo
将有 CustomPresenter2
以满足他们的特定需求。
所以我有一个已经绑定到 activity 的演示者。这本书说一个演示者应该绑定一个视图。但现在我添加了一些片段和大量自定义视图。我也在考虑将一个片段作为一个视图。自定义视图将包含一些逻辑。当然,片段和自定义视图都包含在我的 activity 中。
我的问题是,我应该在片段和自定义视图中重复使用相同的演示者,还是每个视图都应该有自己的演示者?我意识到这都是基于意见的,但我想要测试和保持代码清洁的最佳方法。
如果我确实有一个演示者来处理所有这些,那么演示者使用的界面将包含许多回调方法。同时,如果我做相反的事情并为每个视图创建一个演示者,它可能更容易阅读,但我将如何测试它?
最佳做法是创建一个 basepresenter ,然后为每个实现 basepresenter 的视图创建 presenter
View (Activity)
可以有多个Presenters
。如果 Activity
有多个 CustomViews
,则每个 CustomView
可以有一个巨型 Presenter
或 Presenter
。这取决于:
如果所有
CustomViews
都有相同的需求,一个Presenter
满足所有CustomViews
就足够了。Presenter's
范围还有两个选项:Presenter
有 ActivityScope。Activity
使用Presenter
并从Presenter
调用。然后发送命令,数据到CustomViews
Presenter
有 ViewScope。每个CustomView
创建和销毁相同的Presenter
在
CustomViews
不共享相同需求的情况下,有一个Presenter
和ViewInterface
,它们将包含所有CustomViews
需求的方法,因此每个CustomView
必须实现ViewInterface
中所有声明的方法,留一些空。如果
CustomViews
对Presenter
有不同的需求和方法调用,他们应该有自己的Presenter
.- 如果
CustomViews
有不同的需求,也有一些共同的需求,他们在一个Presenter
中有共同的需求,在他们自己的Presenters
中有特定的需求。 示例:ActivityOne
有CustomViewOne
和CustomViewTwo
。CustomViews
的共同Presenter
可以是FeedPresenter
(考虑到两个 CustomViews 都有 Feed List)。然后CustomViewOne
将有CustomPresenter1
而CustomViewTwo
将有CustomPresenter2
以满足他们的特定需求。