这种命名约定背后的基本原理是什么?
我没有看到任何好处。额外的前缀只会污染 API。
我的想法与康拉德一致response https://stackoverflow.com/a/222502/9898与此相关的question https://stackoverflow.com/questions/222457;被选中的answer https://stackoverflow.com/a/222500/9898T其中主要是我在这里要求的。
完全相反,命名约定清楚地标识了一个接口。
例如,如果您有:
public class Dog : IPet, IMammal
{
....
通过阅读它,我可以有把握地假设 IPet 和 IMammal 可能是接口。
.NET CLR 允许单个类继承。所以,如果我有一个基类......我只能从中继承一个类。让我们将 IPet 接口更改为基类......我们的示例现在变成
public class Dog : Pet, IMammal
{
....
我继承 Pet 类并实现 IMammal 接口。
如果我们按照您的建议做了并删除了字母“I”,我们会得到以下结果:
public class Dog : Pet, Mammal
{
....
我继承的是哪一个类?我正在实现哪个接口?它变得令人困惑吧? (仅供参考......你应该总是把基类放在第一位,所以你可以争论这一点......但是如果你争论从接口名称前缀中删除字母 I 我怀疑你也遵循这种做法)
正如您所看到的,命名约定很容易告诉我很多关于我的对象的信息,而无需我进一步调查。我可以很容易地看到我正在继承什么与我正在实施什么。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)