相关疑难解决方法(0)

Java中的接口命名

大多数面向对象的语言都将其接口名称加上大写字母I,为什么Java不这样做呢?不遵守这一惯例的理由是什么?

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

  1. Class = User,Interface = UserInterface
  2. Class = UserImpl,Interface = User

在大多数语言中:

Class = User,Interface = IUser

现在,您可能会争辩说,您总是可以为用户实现选择一个最具描述性的名称,但问题就会消失,但Java正在推动POJO方法,而大多数IOC容器都广泛使用DynamicProxies.这两个因素共同意味着您将拥有许多具有单个POJO实现的接口.

所以,我想我的问题归结为:"是否值得遵循更广泛的接口命名约定,特别是考虑到Java框架似乎在哪里?"

java interface naming-conventions

313
推荐指数
9
解决办法
19万
查看次数

接口命名约定

这当然是一个主观的事情,但我没有看到任何正面的界面名称前缀为'I'.对我来说,Thing几乎总是比可读性更强IThing.

我的问题是,为什么这个惯例存在呢?当然,它可以更容易地告诉其他类型的接口.但是,这种说法不会延伸到保留现在受到广泛谴责的匈牙利符号吗?

对于那个尴尬的"我",你的论点是什么?或者,更重要的是,微软可能是什么?

c# interface naming-conventions

52
推荐指数
9
解决办法
3万
查看次数

为什么用"I"前缀C#接口名称

这个命名惯例背后的理由是什么?

我没有看到任何好处.额外的前缀只会污染API.

我的想法是内嵌康拉德的响应该相关问题 ; 所选择的答案主要是我在这里要求的.

c# interface naming-conventions

29
推荐指数
7
解决办法
7652
查看次数

理解接口的命名约定

我想了解一下 Bob 叔叔在Clean Code书中关于接口命名的内容:

这些有时是编码的特例。例如,假设您正在构建一个用于创建形状的抽象工厂。这个工厂将是一个接口,并由一个具体的类实现。你应该给它们起什么名字?IShapeFactory 和 ShapeFactory?我更喜欢让界面保持朴素。前面的 I,在今天的遗留文件中很常见,充其量是一种干扰,最坏的情况是信息过多。我不希望我的用户知道我正在给他们一个界面。我只是想让他们知道这是一个 ShapeFactory。因此,如果我必须对接口或实现进行编码,我会选择实现。称其为 ShapeFactoryImp,甚至是可怕的 CShapeFactory,都比对接口进行编码更可取。

他不以“I”开头的界面是什么想法,为什么他不希望用户知道他正在处理一个界面?

oop coding-style interface

1
推荐指数
1
解决办法
551
查看次数

标签 统计

interface ×4

naming-conventions ×3

c# ×2

coding-style ×1

java ×1

oop ×1