java - Java bean 和实现 Comparable 等接口(interface)的约定是什么?

标签 java javabeans conventions comparable

据我所知,Java Beans 应该始终:

  1. 只有一个空的构造函数
  2. 只有字段,以及这些字段的 getter/setter 方法。

但是,我想知道Java bean 实现Comparable 等接口(interface)的惯例是什么?我可以让 java bean 保持纯净,这意味着绝对没有行为,只有数据,并编写一个自定义比较器类。不过,实现可比性更容易。

在实现像 Comparable to Java Beans 这样的简单通用接口(interface)时是否有任何约定?我自己找不到任何后果,但感觉我可能会违反一些规则,并且可能有一些我没有想到的事情。

最佳答案

恕我直言,这个问题主要不是关于约定,而是关于需求。

您说得对,将 bean 内容与任何业务逻辑分离是一种很好的风格。我要在这里补充一点,这通常是一个很好的做法,因为你的 bean 和比较器之间的关系是多对多的,即

  1. 您可能会为一个 bean 类持有多个比较器,并在不同的上下文中使用它们
  2. 有时您可以将一个比较器重复用于多个不同的类,或者对比较器进行分层。

但是你是对的,将比较逻辑写入类本身不那么冗长,在某些情况下更可取。选择完全取决于作者的品味和他/她正在处理的应用程序的要求。

关于java - Java bean 和实现 Comparable 等接口(interface)的约定是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26711239/

相关文章:

Python "private"函数编码约定

java - Java中单个字符大写

java - 如何将 JSONObject 转换为带有字符串变量的 Java Bean?

java - 如何将 2 个 java swing 元素放在彼此之上?

java - 将 Java 作为 Web 应用程序运行

visual-studio-2010 - 我应该抑制 CA2204 : Literals should be spelled correctly?

java - 插入带有子项的@OneToMany 关系对象而不在子表中插入父项ID?

java - 使用 spring mvc 上传 jquery 文件 : 400 bad request

java - 即使在其他线程中启动,帧也会卡住

fluent-nhibernate - 使用 fluent-nhibernate,是否有约定使一对多关系中的外键列不为空?