Java Interface、AbstractClass 和 Enum 命名约定

2022-09-01 09:16:48

我们的团队正在讨论 Java 的代码约定:

  • interface: 或 或 ?FooIFooFooInterface

  • abstract: 或 ?FooAbstractFoo

  • Enums: 或 ?FooFooEnum

我基本上试图把我的个人偏好放在一边,:)因此,非常欢迎支持一个或其他公约的理由。


答案 1

在 Java 中: 和 - 尽管可能只是 .FooAbstractFooFooAbstractFooFoo

证据:

  • java.util.List(接口)
  • java.util.AbstractList(抽象类)
  • java.util.Formatter.BigDecimalLayoutForm(枚举)

有关接口部分,请参阅 Java 编码约定文档的命名约定部分。不过,它不谈论枚举和抽象类。


答案 2

我的博客

  • Foo - 接口最终定义了概念,因此它应该具有最佳名称。
  • AbstractFoo - 一种抽象的实现,旨在用作类层次结构的基础。
  • BaseFoo - 一种旨在用作类层次结构基础的实现,如有必要,基类可以单独使用。
  • DefaultFoo - 适用于大多数典型用例的“默认”实现。
  • SimpleFoo - 一个“简单”的实现,没有意想不到的功能,也许可以作为示例或模拟。一个简单的POJO将是一个很好的“简单”实现。
  • {Descriptive}Foo - 其他实现应该描述使它们独特的原因。

该博客还讨论了反对其他一些名称的原因。