你的位置:首页 > 软件开发 > 操作系统 > 用Kotlin语言重新编写Plaid APP:经验教训(II)

用Kotlin语言重新编写Plaid APP:经验教训(II)

发布时间:2015-12-18 23:00:09
原文标题:Converting Plaid to Kotlin: Lessons learned (Part 2)原文链接:http://antonioleiva.com/plaid-kotlin-2/原文作者:Antonio Leiva(http://antonioleiva. ...

原文标题:Converting Plaid to Kotlin: Lessons learned (Part 2)

原文链接:http://antonioleiva.com/plaid-kotlin-2/

原文作者:Antonio Leiva(http://antonioleiva.com/about/)

原文发布:2015-11-17

 

我们在第一部分中所见的各种显著地改进,要归功于在Activity中使用了Kotlin语言。但是,由于主要是重载方法做些事情,仍然免不了一些公式化代码,所以这种类型的类还不能很好的展示其效果。

 

我持续用Kotlin语言改写该APP(大家可以在repo看到所有改变),并遇到一些有趣的事情。今天,我着重谈论DataManager类的转换。透露一下,该类的大小已从422行减少到177行。我认为这很容易理解。

 

When

纵观该类时,首先看到最多的就是在loadSource类中有大量的if/else语句。在第一个实例中,可以用switch语句提升可读性,但是总还是有点不易理解。在Kotlin语言中,可以用when expression(表达式),它非常类似Java语言中的switch语句,但是功能更强。条件可以依据需要编写,且可以很好的替代if/else语句。这里使用其最简单版本,也已经可以使这个方法更容易阅读:

 1 when (source.key) { 2   SourceManager.SOURCE_DESIGNER_NEWS_POPULAR -> loadDesignerNewsTopStories(page) 3   SourceManager.SOURCE_DESIGNER_NEWS_RECENT -> loadDesignerNewsRecent(page) 4   SourceManager.SOURCE_DRIBBBLE_POPULAR -> loadDribbblePopular(page) 5   SourceManager.SOURCE_DRIBBBLE_FOLLOWING -> loadDribbbleFollowing(page) 6   SourceManager.SOURCE_DRIBBBLE_USER_LIKES -> loadDribbbleUserLikes(page) 7   SourceManager.SOURCE_DRIBBBLE_USER_SHOTS -> loadDribbbleUserShots(page) 8   SourceManager.SOURCE_DRIBBBLE_RECENT -> loadDribbbleRecent(page) 9   SourceManager.SOURCE_DRIBBBLE_DEBUTS -> loadDribbbleDebuts(page)10   SourceManager.SOURCE_DRIBBBLE_ANIMATED -> loadDribbbleAnimated(page)11   SourceManager.SOURCE_PRODUCT_HUNT -> loadProductHunt(page)12   else -> when (source) {13     is Source.DribbbleSearchSource -> loadDribbbleSearch(source, page)14     is Source.DesignerNewsSearchSource -> loadDesignerNewsSearch(source, page)15 16   }17 }

原标题:用Kotlin语言重新编写Plaid APP:经验教训(II)

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录