2

在 Java 中创建接口层次结构是否被认为是不好的?

我设计了这样的存储库层:

  • Repository, 包含 CRUD 方法
  • JPARepository, 仅在 JPA 中需要的潜在方法
  • SomeModelRepository,该模型的存储库的特定方法。
  • SomeModelJPARepository, 扩展 JPARepository 和 SomeModelRepository

这被认为是不好的做法,是一种奇怪的有组织的等级制度吗?

4

1 回答 1

4

不,事实上创建接口层次结构是相当普遍的,至少在库中是这样。以NavigableSet为例,它上面有 4 层接口(SortedSet、Set、Collection、Iterable)。

在这个例子中,菱形继承有点特殊,但如果有必要,它本身并不是一个糟糕的选择。但通常树层次结构更清晰更好。在这种情况下,我会考虑制作:

  1. SomeModelRepository 是 JPARepository 的子类,从而强制所有实现类支持 JPA
  2. 在不同的接口中指定 JPA 支持,而不是 Repository 的子类。然后所有类都可以选择是否独立于其特定的 Repository 接口来实现 JPA。有关示例,请参见可序列化。这是事实上的解决方案,用于表明类支持特定功能,如“序列化”,或者可能像本例中的“持久性”。
于 2012-11-06T20:37:26.747 回答