gpt4 book ai didi

android MVP - 我可以为自定义 View 和 fragment 设置多个演示者吗

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:29:13 27 4
gpt4 key购买 nike

所以我有一个已经绑定(bind)到 Activity 的演示者。这本书说一个演示者应该绑定(bind)一个 View 。但现在我添加了一些 fragment 和大量自定义 View 。我也在考虑将一个 fragment 作为一个 View 。自定义 View 将包含一些逻辑。当然, fragment 和自定义 View 都包含在我的 Activity 中。

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

如果我确实有一个演示者来处理所有这些,那么演示者使用的界面将包含许多回调方法。同时,如果我做相反的事情并为每个 View 创建一个演示者,它可能更容易阅读,但我将如何测试它?

最佳答案

View (Activity) 可以有多个 Presenters。如果 Activity 有多个 CustomViews,则每个 可以有一个巨大的 PresenterPresenter自定义 View 。这取决于:

  1. 如果所有 CustomViews 都有相同的需求,那么所有 CustomViews 一个 Presenter 就足够了。 Presenter 的 范围还有两个选项:

    • PresenterActivityScopeActivity 使用 Presenter 并从 Presenter 调用。然后发送命令,数据到CustomViews
    • PresenterViewScope。每个 CustomView 创建和销毁相同的 Presenter

    如果 CustomViews 没有相同的需求,只有一个 PresenterViewInterface,它们将包含所有 CustomViews 需要,所以每个 CustomView 都必须实现 ViewInterface 中声明的所有方法,留一些空。

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

  3. 如果 CustomViews 有不同的需求,也有一些共同的需求,它们在一个 Presenter 中共享共同的需求,在它们自己的 Presenters 中共享特定的需求。 示例:ActivityOne 具有CustomViewOneCustomViewTwoCustomViews 的公共(public) Presenter 可以是 FeedPresenter(考虑到两个 CustomViews 都有 Feed List)。然后 CustomViewOne 将拥有 CustomPresenter1CustomViewTwo 将拥有 CustomPresenter2 以满足其特定需求。

关于android MVP - 我可以为自定义 View 和 fragment 设置多个演示者吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43104614/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com