gpt4 book ai didi

java - Java 中复杂 getter 的命名约定

转载 作者:行者123 更新时间:2023-12-04 23:07:44 27 4
gpt4 key购买 nike

我正在阅读这个 MSDN article关于 .NET 中属性和方法的使用。它指出了为什么以及何时使用属性或方法。

Properties are meant to be used like fields, meaning that properties should not be computationally complex or produce side effects.

否则应该使用方法。

我问自己如何用 Java 表达这种差异。

你怎么看?

最佳答案

I was asking myself how you could express this difference in Java.

只是不要在方法上使用 get 前缀,因为它通常意味着该方法将是廉价的(因为 getter 通常只访问字段,委托(delegate)给其他 getter,或执行相当简单的计算基于其他 setter/getter )。例如,如果一个类有这个接口(interface):

class Blob {
long getLength() { ... }
ByteBuffer getBytes() { ... }
Sha1Checksum getChecksum() { ... }
}

...从 Blob 中获取长度、内容和校验和似乎同样昂贵。如果我们这样做,而是:

interface Blob {
long getLength() { ... }
ByteBuffer getBytes() { ... }
Sha1Checksum calculateChecksum() { ... }
}

...很明显(呃)我们可以预期 calculateChecksum() 比其他操作更昂贵,因为它的名字表明它要做的不仅仅是得到一些东西。

从某种程度上说,复杂度是一个不应该在接口(interface)中看到的实现问题(也许我决定在构造Blob时急切地计算校验和?),但是有区分有意义的场合。

关于java - Java 中复杂 getter 的命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2964491/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com