Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 命名接口和实现的约定?_Java - Fatal编程技术网

Java 命名接口和实现的约定?

Java 命名接口和实现的约定?,java,Java,java中命名接口及其实现类的约定是什么 Interface : ISomeService Impl : SomeService 或 谢谢 命名您的接口是什么卡车。不是ITruck,因为它不是ITruck它是卡车。Java中的接口是一个。然后您有自卸车,转运车,破坏者卡车,水泥卡车,等等。当您使用接口卡车代替子类时,您只需将其强制转换为卡车。如列表中所示。将I放在前面只是蹩脚的匈牙利式符号,它只会在代码中添加更多的内容 所有现代JavaIDE都会标记接口和实现,而且没有这种愚蠢的标记法也不行。

java中命名接口及其实现类的约定是什么

Interface : ISomeService
Impl : SomeService


谢谢

命名您的
接口
是什么<代码>卡车。不是
ITruck
,因为它不是
ITruck
它是
卡车
。Java中的
接口是一个。然后您有
自卸车
转运车
破坏者卡车
水泥卡车
,等等。当您使用
接口
卡车
代替子类时,您只需将其强制转换为
卡车
。如
列表中所示
。将
I
放在前面只是蹩脚的匈牙利式符号,它只会在代码中添加更多的内容

所有现代JavaIDE都会标记接口和实现,而且没有这种愚蠢的标记法也不行。不要称它为
TruckClass
,它和
i界面一样糟糕

如果它是一个实现,那么它就是一个类。这条规则唯一真正的例外是
AbstractTruck
。因为只有子类会看到这一点,并且您不应该强制转换到抽象类,所以它确实添加了一些信息,说明该类是抽象的,以及应该如何使用它。您仍然可以想出一个比
AbstractTruck
更好的名称,并改用
BaseTruck
。但是由于
Abstract
类不应该是任何面向公众的接口的一部分,因此这是一个可以接受的例外

Impl
后缀也只是更多的噪音。更多的同义反复。任何不是接口的东西都是实现,即使是部分实现的抽象类。你打算在每个人的名字上都加上那愚蠢的
Impl
后缀吗

接口
是一个关于公共方法和属性必须支持什么的契约,也是一个信息。实现
卡车
的一切都是
卡车
的一部分

看看Java标准库本身。您是否看到
IList
ArrayListPL
LinkedListImpl
?不,你看<代码>列表
数组列表
链接列表
。对于这个问题,这里有一个很好的解释。任何这些愚蠢的前缀/后缀命名约定都违反了原则


此外,如果您发现自己向对象添加了
DTO
JDO
BEAN
或其他愚蠢的重复后缀,那么它们可能属于a,而不是所有这些后缀。正确打包的名称空间是自文档化的,并减少了这些构思非常糟糕的专有命名方案中所有无用的冗余信息,而大多数地方甚至没有以一致的方式遵守这些方案。如果要使类名唯一,您所能想到的就是在其后面加上
Impl
,那么您需要重新考虑是否有一个
接口。因此,如果您有一个
接口
和一个
实现
,而该实现不是从
接口
专门化的,那么您可能不需要
接口

命名您的
接口<代码>卡车
。不是
ITruck
,因为它不是
ITruck
它是
卡车
。Java中的
接口是一个。然后您有
自卸车
转运车
破坏者卡车
水泥卡车
,等等。当您使用
接口
卡车
代替子类时,您只需将其强制转换为
卡车
。如
列表中所示
。将
I
放在前面只是蹩脚的匈牙利式符号,它只会在代码中添加更多的内容

所有现代JavaIDE都会标记接口和实现,而且没有这种愚蠢的标记法也不行。不要称它为
TruckClass
,它和
i界面一样糟糕

如果它是一个实现,那么它就是一个类。这条规则唯一真正的例外是
AbstractTruck
。因为只有子类会看到这一点,并且您不应该强制转换到抽象类,所以它确实添加了一些信息,说明该类是抽象的,以及应该如何使用它。您仍然可以想出一个比
AbstractTruck
更好的名称,并改用
BaseTruck
。但是由于
Abstract
类不应该是任何面向公众的接口的一部分,因此这是一个可以接受的例外

Impl
后缀也只是更多的噪音。更多的同义反复。任何不是接口的东西都是实现,即使是部分实现的抽象类。你打算在每个人的名字上都加上那愚蠢的
Impl
后缀吗

接口
是一个关于公共方法和属性必须支持什么的契约,也是一个信息。实现
卡车
的一切都是
卡车
的一部分

看看Java标准库本身。您是否看到
IList
ArrayListPL
LinkedListImpl
?不,你看<代码>列表
数组列表
链接列表
。对于这个问题,这里有一个很好的解释。任何这些愚蠢的前缀/后缀命名约定都违反了原则

此外,如果您发现自己向对象添加了
DTO
JDO
BEAN
或其他愚蠢的重复后缀,那么它们可能属于a,而不是所有这些后缀。正确打包的名称空间是自文档化的,并减少了这些构思非常糟糕的专有命名方案中所有无用的冗余信息,而大多数地方甚至没有以一致的方式遵守这些方案。如果要使类名唯一,您所能想到的就是在类名后面加上
ImplInterface : SomeService
Impl : SomeServiceImpl