为了账号安全,请及时绑定邮箱和手机立即绑定

Java中的接口命名

Java中的接口命名

慕森王 2019-11-05 10:21:48
大多数OO语言的接口名称都以大写的I开头,为什么Java不这样做呢?不遵守该公约的理由是什么?为了说明我的意思,如果我想拥有一个用户界面和一个用户实现,那么在Java中我有两种选择:类=用户,接口= UserInterface类= UserImpl,接口=用户在大多数语言中:类=用户,接口= IUser现在,您可能会争辩说,您总是可以为用户实现选择一个最具描述性的名称,问题就消失了,但是Java将POJO方法推向了事物,大多数IOC容器广泛使用DynamicProxies。这两件事共同意味着您将通过单个POJO实现拥有很多接口。因此,我想我的问题可以归结为:“是否值得遵循更广泛的接口命名约定,尤其是考虑到Java框架的发展方向?”
查看完整描述

3 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

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

  • 前缀会损害可读性。

  • 在客户端中使用接口是进行编程的最佳标准方法,因此接口名称应尽可能简短和令人愉快。实施类应该更丑陋以阻止其使用。

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


查看完整回答
反对 回复 2019-11-05
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

还有一个约定,包括Spring在内的许多开源项目都在使用。


interface User {

}


class DefaultUser implements User {

}


class AnotherClassOfUser implements User {

}

我个人不喜欢“ I”前缀,原因很简单,因为它是可选约定。因此,如果我采用这种方式,那么IIOPConnection是否表示IOPConnection的接口?如果该类没有前缀“ I”,该怎么办,我是否知道它不是接口。.答案是否定的,因为并非总是遵循约定,并且对它们进行监管将产生约定本身保存的更多工作。


查看完整回答
反对 回复 2019-11-05
  • 3 回答
  • 0 关注
  • 2326 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信