android kotlin 高阶函数,android-在MVP中使用Kotlin高阶函数

这个问题的答案是与技术限制相关的架构决策.您可以在Java(甚至在Java7中)中使用匿名实例来实现同一件事(当然,这样做会有更多样板,并且更难阅读).

MVP中具有视图实现的合同的想法是,每个演示者都知道如何获取,操纵和呈现给该合同.一个视图可能实现多个合同并具有多个演示者.同样,每个演示者实例仅适用于合同的一个实现,但是您可以有两个实例为两个不同的实现提供服务.

如果不是每个视图都符合每个演示者的合同,而是每个演示者的呼叫迟早都要花费lambda,您最终会遇到问题.

例如,假设一个演示者异步获取数据并将其缓存在内存中:

>视图调用演示者方法fetchData().

>演示者调用合同的showLoading()方法.

>(经过一段时间)

>演示者调用合同的hideLoading()和showData(data)方法.

>用户进行交互并再次触发fetchData()

>演示者使用缓存的数据调用showData()

在这种情况下,如果我们使用lambda而不是合约,则需要以相同的方法请求两个不同的lambda:一个用于缓存时间,另一个用于不缓存时间.

我们还将视图实现耦合到演示者,将来演示者接口的另一种实现可能不需要这两个lambda,因为逻辑已更改.

重要的是要记住,在MVP中,理想情况下,视图和演示者都通过接口相互通信,在这种情况下,演示者接口不应受实现细节的影响,而应公开其能够执行的操作.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值