gpt4 book ai didi

java - Android MVP : What is an Interactor?

转载 作者:IT老高 更新时间:2023-10-28 20:28:38 24 4
gpt4 key购买 nike

什么是交互器?它如何适应 MVP 设计?使用交互器与将交互器代码放在演示器中的优点/缺点是什么?

最佳答案

在撰写本文时(2016 年),许多项目都是使用不良版本的 MVC 模式编写的。 Activity/Fragment/Controller 的代码行太多。这个问题通常被称为上帝 Activity 。 MVP 通过将类与 Model、View 和 Presenter 解耦来解决这个问题越来越受欢迎。

但 MVP 本身还不够,我们还看到了交互器和存储库模式的出现。

What is an Interactor? How does it fit within the MVP Design?

您可以将交互器视为创建、读取、更新和删除 (CRUD) 模型的“Util”类。交互器将从存储库中从您的数据库、Web 服务或任何其他数据源中获取数据。Interactor 是获取模型的“动词”或“ Action ”。

  • 获取用户
  • 更新个人资料
  • 删除状态
  • 等等..

interactor拿到数据后,会将数据发送给presenter。演示者决定何时或如何使用模型对 UI 进行更改。

使用交互器意味着业务逻辑是解耦的。因为它是解耦的;代码可重用、更简单且可测试。

What are the advantages/disadvantages of using an interactor vs putting the interactor code in the presenter?

您可以将“交互代码”放在演示器中,例如,如果您确信代码足够简单,不需要将其提取到单独的类中。但如果您决定使用交互器,则交互器可以在其他演示者上重用。

存储库呢?

存储库是负责 CRUD 操作的实现细节的类,例如连接到数据库。

存储库包含获取模型的实现细节。

class UserRepository {
fun connectToDb() {}
fun getUser(): User {}
}

有些人称之为数据源,但我相信这些术语是可以互换的。

更新(2021 年):尽管 MVP + Interactor 仍然有用。带有 Android Jetpack 的 MVVM 模式是 Google 的首选 UI 模式。

关于java - Android MVP : What is an Interactor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35746546/

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