gpt4 book ai didi

android - 为什么我们应该在 Android 的 MVP 模式中使用界面?

转载 作者:搜寻专家 更新时间:2023-11-01 09:21:12 25 4
gpt4 key购买 nike

我第一次使用 MVP 模式使用 Kotlin 制作一个 Android 应用程序。我的问题是,为什么我需要 View 和 Presenter 的接口(interface),因为 Kotlin 提供高阶函数?我们不能只使用那些高阶函数进行通信吗?使用没有接口(interface)的模式不好吗?

我看过并阅读了很多文章和教程,但没有回答我的问题。我在下面的代码中所做的是错误的做法吗?谁能给我解释一下?

在我的 Activity 中

override fun init() {

btn_login.setOnClickListener {
LoginPresenter.userLogin(et_emailAddress.text.toString(),et_password.text.toString()){
if (it){
//do something
}else{
//do something
}
}
}
}

我的演示者

object LoginPresenter {

fun userLogin(emailId: String, password: String, completion: (Boolean) -> Unit) {
//do something
completion(true)
}
}

最佳答案

  1. 高阶函数成本

    关于高阶函数成本的 Kotlin 官方文档

    Using higher-order functions imposes certain runtime penalties: each function is an object, and it captures a closure, i.e. those variables that are accessed in the body of the function. Memory allocations (both for function objects and classes) and virtual calls introduce runtime overhead.

    如果您用高阶函数替换所有接口(interface),您可能会以糟糕的性能告终。

2。 接口(interface)可以包含多个函数,在使用高阶函数时,您需要单独的函数参数。考虑以下情况,

interface UserLoginInterface {
fun onLoginSuccess(loggedInUser: User)
fun onLoginFailure(error: ErrorResponse)
fun onRedirect(someOtherObjectWithDirectives: SomeDataClass)
}

要将其转换为高阶函数用法,您必须使用三个函数参数

关于android - 为什么我们应该在 Android 的 MVP 模式中使用界面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55321400/

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