类名前的前缀I是什么比如IController IObserver



我正在学习MVP模式。在一些例子中,我看到了这个!有人能说明为什么程序员使用这种命名约定吗?

通常I表示接口。没有I就是类。就我个人而言,我不喜欢这个。我认为这在网点网络中更常见。我在Java中没见过太多这种情况

我不喜欢的原因:

  • ide现在显示图标来指示一个类是否是接口。
  • 如果我想将接口更改为抽象类,那么我必须重命名类

" I "代表界面。这是一种通用的命名约定,用于区分接口和类/结构。

接口不是类——它们定义行为,类提供实现。

在MSDN上阅读这篇文章获取更多信息:在类和接口之间进行选择

接口定义了一组成员的签名实现者必须提供。接口不能提供实现成员的详细信息。例如,iccollection接口定义与处理集合相关的成员。每一节课实现接口必须为其提供实现细节这些成员。类可以实现多个接口。

这是匈牙利符号被认为是一个好主意的时代的人工制品。它让用户知道该名称是用于接口的。

而且,这是一种极其愚蠢的做法。

接口的名称应该反映它所表示的类之间的契约类型。它应该而不是告诉你它被绑定到哪个类。

它应该是class PDF extends Document implements Printable,因为它让你知道类实现print()方法出于某种原因(在现实世界中,这实际上是一个糟糕的API设计,但这是一个例子)而不是class PDF extends Document implements IDocument。因为这告诉你什么都没有

最新更新