Java中的接口命名[关闭]

大多数OO语言在其接口名称前加上大写字母I,为什么Java不这样做?不遵循此约定的理由是什么

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

  1. 类=用户,接口=用户接口
  2. Class=UserImpl,Interface=User

在大多数语言中:

类=用户,接口=IUser

现在,您可能会争辩说,您总是可以为用户实现选择一个最具描述性的名称,这样问题就解决了,但是Java正在推动POJO方法,而且大多数IOC容器都广泛使用DynamicProxies。这两件事加在一起意味着,您将有许多接口与单个POJO实现一起使用

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

我不喜欢在接口上使用前缀:

  • 前缀会影响可读性

  • 在客户机中使用接口是标准的最佳编程方式,因此接口名称应尽可能简短和令人愉快。实现类应更加丑陋,以阻止使用它们

  • 当从抽象类更改为接口时,带有前缀I的编码约定意味着重命名所有出现的类——不好

发表评论