RXJAVA 2链式和常规代码:并排比较

拍摄者Petar PetkovskiUnplash

与执行同样事情的常规代码相比,RXJAVA的新学习者有时会有所帮助。

在这里,我将介绍两种代码,它们的操作几乎是相同的 - 一个使用RXJAVA,另一个使用常规代码。

如果您不熟悉RXJAVA,请查看学习rxjava变得容易

代码做什么

在详细了解之前,让我们看看代码的作用。基本上,它通过一组图像循环以创建动画,如下图所示。

代码操作是:

  • 在100毫秒内从0到6,然后等待300毫秒
  • 在100毫秒的内部循环回到6到0,然后等待300毫秒。

动画看起来像这样:

注意:如果您对制作该图像动画的整个代码感兴趣,请参考https://betway娱乐官网www.baixiangren.com/better-programming/practical-image-porterduff-mode-usage-in-indroid-3b4b5d2e8f5f

常规代码

我仅使用rxjava将循环操作放在工作线后面,从而避免停止UI线程。除此之外,这只是循环和睡眠(等待)的常规代码示例。

笔记:rxjavaplugins.seterrorhandler{/*捕获InterruptedException*/}主要是为了处理RX中的Onerror无法捕获的睡眠中断。这里有一个解释:https://stackoverflow.com/a/57658846/3286489

优点

它易于阅读和遵循逻辑,您可以将代码映射到上图上的图表。使用简单的编码控制代码,我们可以实现我们想做的事情。

缺点

指某东西的用途线程考虑到它想要实现的目标,这不是等待的理想选择,而且相对详细。需要更多的代码行,具有更深的代码层次结构。

RXJAVA链代码

优点

该代码看起来更整洁,更简洁。所需的代码层次结构不太深。没有线程需要,因为它被替换为内部的手术。

缺点

乍一看,该代码更难理解。它不容易映射到上面显示的流程图。您必须知道RXJAVA操作功能和副作用功能的使用,然后才能简洁。它需要更多的精神能量。

就个人而言,为了更好地理解和清晰,我更喜欢常规的编码方法。但是,在这种情况下,由于需要线程在这种情况下,我将使用RXJAVA链接间隔手术。

没有对或错误的答案更好。这只是一个偏好 - 需要评估其使用情况。有时,它们之间的某些东西也会工作。

如果您想要上面的动画的完整代码并继续探索这两种编码方法,请在此处获取:

我希望这篇文章对您有帮助。

获取中型应用betway娱乐官网

一个说“在应用商店上下载”的按钮,如果单击,它将带您到iOS App Store
一个说“获取它,Google Play”的按钮,如果单击它,它将带您到Google Play商店
Baidu