Man*_*iri 6 android design-patterns kotlin android-mvp
我第一次使用MVP模式使用Kotlin制作Android应用程序。我的问题是,既然Kotlin提供了高阶函数,为什么还需要 View 和 Presenter 的接口?我们不能只使用那些高阶函数进行通信吗?使用没有接口的模式是不是很糟糕?
我已经查看并阅读了很多文章和教程,但没有回答我的问题。我在下面的代码中所做的事情是错误的做法吗?有人可以向我解释一下吗?
在我的活动中
override fun init() {
btn_login.setOnClickListener {
LoginPresenter.userLogin(et_emailAddress.text.toString(),et_password.text.toString()){
if (it){
//do something
}else{
//do something
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的演讲者
object LoginPresenter {
fun userLogin(emailId: String, password: String, completion: (Boolean) -> Unit) {
//do something
completion(true)
}
}
Run Code Online (Sandbox Code Playgroud)
Kotlin 提供了高阶函数,为什么我需要 View 和 Presenter 接口?
这是软件开发中相当常见的做法。虽然您可能不使用接口,但有许多关键点说明为什么接口更可取。我的头顶上浮现出:
使用接口,您可以拥有它的多个实现,而无需实际关心实现的具体类型。这就是高阶函数所缺少的 -LoginPresenter使用该方法时,您受到唯一类型 的限制LoginPresenter.userLogin()。
大多数设计模式都是基于接口与其实现的分离。因此,对实现而不是抽象进行编程不会让您利用这些。
您将无法正确地对依赖于其他实现的类进行单元测试,因为在这种情况下不可能进行模拟。
随着具体实现,代码维护和扩展变得更加困难。
| 归档时间: |
|
| 查看次数: |
1280 次 |
| 最近记录: |