May 2025
Intermediate to advanced
424 pages
6h 12m
Chinese
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
在 Java 中,我们将对象集合封装在类中,以控制突变和添加操作。 在 Kotlin 中,控制突变就不那么重要了,我们可以使用扩展函数来添加操作。 如果没有封装,我们的设计会如何更好,又该如何实现呢?
在 第 6 章中,我们探讨了 Java 和 Kotlin 在处理集合时的不同之处。 Java 的集合接口与其面向对象的根源一致,从根本上来说是可变型的,而 Kotlin 则将集合视为值类型。 正如我们所看到的,如果我们对共享集合进行变型,就会遇到各种麻烦。
我们可以通过不对共享集合进行变异("Don't Mutate Shared Collections")来避免这种麻烦,但在 Java 中,当add 和set 方法只是自动完成时,就很难做到这一点了。大多数 Java 代码并没有遵守惯例和纪律,而是明智地选择了更安全的方法,即干脆不共享原始集合。 相反,集合被隐藏在另一个对象中。
例如,这里是 Travelator 中的Route :
publicclassRoute{privatefinalList<Journey>journeys;publicRoute(List<Journey>journeys){this.journeys=journeys;}publicintsize(){returnjourneys.size();}publicJourneyget(intindex){returnjourneys.get(index);}publicLocationgetDepartsFrom(){returnget(0).getDepartsFrom();}publicLocationgetArrivesAt(){returnget(size()-1).getArrivesAt ...
Read now
Unlock full access