Java 命名接口和实现的约定?
java中命名接口及其实现类的约定是什么Java 命名接口和实现的约定?,java,Java,java中命名接口及其实现类的约定是什么 Interface : ISomeService Impl : SomeService 或 谢谢 命名您的接口是什么卡车。不是ITruck,因为它不是ITruck它是卡车。Java中的接口是一个。然后您有自卸车,转运车,破坏者卡车,水泥卡车,等等。当您使用接口卡车代替子类时,您只需将其强制转换为卡车。如列表中所示。将I放在前面只是蹩脚的匈牙利式符号,它只会在代码中添加更多的内容 所有现代JavaIDE都会标记接口和实现,而且没有这种愚蠢的标记法也不行。
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,而不是所有这些后缀。正确打包的名称空间是自文档化的,并减少了这些构思非常糟糕的专有命名方案中所有无用的冗余信息,而大多数地方甚至没有以一致的方式遵守这些方案。如果要使类名唯一,您所能想到的就是在类名后面加上Impl
Interface : SomeService
Impl : SomeServiceImpl