使用Kotlin协程DSL打造MVVM架构App -- 基础知识

Coroutines, 是Kotlin的协程库。本质上,协程是轻量级的线程,除了更高效地实现并发, 使用它还能够桥接阻塞与非阻塞的世界。简单示例:

/**
* Wait one second then display a snackbar.
*/
fun onMainViewClicked() {
   // launch a coroutine in viewModelScope
   viewModelScope.launch {
       // suspend this coroutine for one second
       delay(1_000)
       // resume in the main dispatcher
       // _snackbar.value can be called directly from main thread
       _snackBar.value = "Hello, from coroutines!"
   }
}
复制代码

DSL(domain specific language),可以理解为具体编程语言之上, 针对特定领域问题的语言。大家感受下这段单元测试代码:

val str = "kotlin"
str should startWith("kot")
str.length shouldBe 6
复制代码

有没觉得“内容引起舒适”?

Data Binding 数据绑定,用于降低界面布局和业务逻辑代码的耦合性。具体一点讲,通过将数据单向或双向绑定到 layout 文件中,Data Binding 能够大量减少Activity或Fragment中的findViewById()/setText()/setImage()等步骤,有助于防止内存泄漏,而且能自动进行空检测以避免空指针异常。

MVVM(Model/View/ViewModel) 架构范式相对于MVP, 更进一步降低了View层和Presenter之间的耦合,更彻底地分离了各层的关注点。上图:

转载于:https://juejin.im/post/5cb7b2a6e51d456e5f76c478

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值