Java Beans的惯例是什么?如何实现类似于Comparable的接口?

5
据我所知,Java Beans 应该始终遵循以下要求:
  1. 只有一个空构造函数
  2. 只有字段和这些字段的 getter/setter 方法。
然而,我想知道 Java Beans 实现像 Comparable 这样的接口的约定是什么?我可以保持 Java Bean 的纯净,即只有数据而没有行为,并编写自定义比较器类。但实现 Comparable 更容易些。
在实现类似 Comparable 这样的常见接口时,是否有任何约定?我自己找不到任何后果,但感觉可能会违反某些规则,而且可能有一些我没有考虑到的东西。
1个回答

4

我的看法是,这个问题大多数情况下并不涉及惯例,而是需要。

你说得对,将bean相关的内容与业务逻辑分开是一种好的风格。我在这里想补充的是,这通常是一个好的实践,因为你的beans和比较器之间的关系是多对多的,即:

  1. 您可能会为一个bean类保留多个比较器,并在不同的上下文中使用它们
  2. 有时您可以为几个不同的类重用一个比较器或制作比较器层次结构。

然而,你说的写入类本身的比较逻辑不够详细,在某些情况下更可取。选择完全取决于作者的口味和他/她所工作的应用程序的要求。


我没有考虑到在这种情况下需要多个比较器。您说得对,不同的情况会给出不同的答案。在这种情况下,我想知道是否有任何理由在将它们分开时提供优势。在大型企业应用程序中,我认为重要的是要考虑到所有可能的扩展需求,并使设计能够适应变化。换句话说,您给了我一个很好的理由,将比较操作与Java Bean分开。谢谢。 - jumps4fun
很高兴知道我的回答有所帮助。祝你好运。 - AlexR

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接