一尘不染

Java中的接口命名

java

大多数OO语言的接口名称都以大写的I开头,为什么Java不这样做呢?不遵守该公约的理由是什么?

为了说明我的意思,如果我想拥有一个用户界面和一个用户实现,那么在Java中有两种选择:

  1. 类=用户,接口= UserInterface
  2. 类= UserImpl,接口=用户

在大多数语言中:

  • 类=用户,接口= IUser

现在,你可能会争辩说,你总是可以为用户实现选择一个最具描述性的名称,问题就消失了,但是Java将POJO方法推向了事物,并且大多数IOC容器广泛使用DynamicProxies。这两件事在一起意味着你将通过单个POJO实现拥有很多接口。

因此,我想我的问题可以归结为:“是否值得遵循更广泛的接口命名约定,尤其是考虑到Java框架的发展方向?”


阅读 609

收藏
2020-03-23

共1个答案

一尘不染

我不想在接口上使用前缀:

  • 前缀会损害可读性。
  • 在客户端中使用接口是进行编程的最佳标准方法,因此接口名称应尽可能简短和令人愉快。实施类应该更丑陋以阻止其使用。
  • 当从抽象类更改为接口时,带前缀的编码约定意味着重命名该类的所有出现—不好!
2020-03-23