【发布时间】:2009-09-07 12:42:13
【问题描述】:
我非常相信一致性,因此也是惯例。
但是,我目前正在用 Java 开发一个框架,其中这些约定(特别是 get/set 前缀约定)似乎妨碍了可读性。例如,某些类将具有id 和name 属性,并且使用o.getId() 而不是o.id() 似乎完全没有意义,原因有很多:
- 类是不可变的,因此(通常)不会有相应的 setter,
- 没有混淆的可能,
- 在这种情况下,
get没有传达额外的语义,并且 - 我在整个库中非常一致地使用这种
get-less 命名模式。
Java Collection 类(以及 Java 平台库中的其他类)也违反了 JavaBean 约定(例如,它们使用 size 而不是 getSize 等),这让我得到了一些保证。
为了解决这个问题:组件将永远被用作 JavaBean,因为它们不能以这种方式有意义地使用。
另一方面,我不是一个经验丰富的 Java 用户,我不知道其他 Java 开发人员对库的期望。我可以按照 Java 平台类的示例进行操作,还是认为它的风格不好?回想起来,Java 库类中违反 get/set 约定是否被视为错误?或者在不适用时忽略 JavaBean 约定是否完全正常?
(Sun code conventions for Java 根本不提这个。)
【问题讨论】:
标签: java naming-conventions javabeans