大多数OO语言的接口名称都以大写的I开头,为什么Java不这样做呢?不遵守该公约的理由是什么?为了说明我的意思,如果我想拥有一个用户界面和一个用户实现,那么在Java中我有两种选择:类=用户,接口= UserInterface类= UserImpl,接口=用户在大多数语言中:类=用户,接口= IUser现在,您可能会争辩说,您总是可以为用户实现选择一个最具描述性的名称,问题就消失了,但是Java将POJO方法推向了事物,大多数IOC容器广泛使用DynamicProxies。这两件事共同意味着您将通过单个POJO实现拥有很多接口。因此,我想我的问题可以归结为:“是否值得遵循更广泛的接口命名约定,尤其是考虑到Java框架的发展方向?”
3 回答
守着星空守着你
TA贡献1799条经验 获得超8个赞
我不想在接口上使用前缀:
前缀会损害可读性。
在客户端中使用接口是进行编程的最佳标准方法,因此接口名称应尽可能简短和令人愉快。实施类应该更丑陋以阻止其使用。
当从抽象类更改为接口时,带前缀的编码约定意味着重命名该类的所有出现---不好!
喵喵时光机
TA贡献1846条经验 获得超7个赞
还有一个约定,包括Spring在内的许多开源项目都在使用。
interface User {
}
class DefaultUser implements User {
}
class AnotherClassOfUser implements User {
}
我个人不喜欢“ I”前缀,原因很简单,因为它是可选约定。因此,如果我采用这种方式,那么IIOPConnection是否表示IOPConnection的接口?如果该类没有前缀“ I”,该怎么办,我是否知道它不是接口。.答案是否定的,因为并非总是遵循约定,并且对它们进行监管将产生约定本身保存的更多工作。
添加回答
举报
0/150
提交
取消