【发布时间】:2020-07-12 17:09:33
【问题描述】:
从 MVP 到 viewModels,当谈到在哪里放置一些代码时,我觉得我有点迷茫。 一个例子是点击监听器的放置位置。在MVP中我会做这样的事情
myButton.setOnClickListener { presenter.onMyButtonClicked }
我应该对 ViewModel 做同样的事情吗?我不这么认为。因为这意味着我将视图模型视为演示者。
但是,另一方面,如果我在视图(活动或片段)中处理点击侦听器,则视图最终可能不会像应有的那样愚蠢。
应该在哪里处理点击侦听器最合适的位置?
【问题讨论】:
-
因为您的问题是关于架构的实现,我觉得您的问题可能是基于意见,因为对此没有任何正确答案,我个人不明白为什么不会在视图中而不是在视图模型中处理这个问题,但同样,这是我的 opinion :)
-
@a_local_nobody 因为处理可能意味着应该进行一些计算或逻辑。并且视图不是这样做的正确位置。
-
没错,视情况而定,没有理由不能在视图中设置点击监听器以及VM处理点击的实现逻辑:函数结果、回调、可观察数据- 实现这一目标的所有可用方法,您可以使用数据绑定、大量选项,没有真正的最佳解决方案
标签: android mvvm onclick onclicklistener android-viewmodel