【发布时间】:2022-10-17 21:54:16
【问题描述】:
我是学习 Kotlin 的新手,刚刚介绍了每个对象属性的 Getter 和 Setter 都是在幕后自动生成的,就像 Lombok 直接内置在语言中一样(就我而言很棒!),但是现在我剩下的问题是为什么它甚至会打扰?
我知道您可以覆盖默认值以更改它们的行为方式,但是为什么当您需要做一些更复杂的事情而不是仅仅获取或设置值时创建它们的情况不只是这种情况,而是只是正常访问属性?
以前使用过很多 Java,我了解支持和反对使用 Getter 和 Setter 的争论。许多人说它们实际上是毫无意义的,并且是一种糟糕的 OOP 方法,其他人会说它们是最佳实践,应该在任何地方使用。许多现代框架和库的编写方式使得它们在很多情况下都是必要的。这个论点跨越了许多不同的语言,但是这个问题并不是关于它们在 OOP 中作为一个整体的理论原因,我正在寻找具体的洞察力,了解为什么默认情况下在 Kotlin 中使用它们,什么时候我(也许是天真的) 眼睛看起来不需要。
会是什么实际的如果 Kotlin 没有生成标准的 Getter 和 Setter 并且点表示法只是直接访问该属性,会有什么区别?在语法上,据我所见,它产生相同的结果,只是增加了一些步骤。
【问题讨论】:
标签: kotlin oop getter setter accessor