![]() |
1
13
“i”前缀并不是真正的java方式。更多的是C。 对于Java,我通常使用以下约定:
我认为这与java标准(分别是map、abstractmap和hashmap)非常吻合。 至于用抽象类替换接口,则需要重构。我认为最好对所有方法返回、数据成员类型、局部变量类型和参数使用接口。抽象类是(或应该是)实现细节。 回到地图的例子,这意味着一切都是地图。您可以创建自己的映射子类。jdk为您提供了一个helper类,它可以完成大多数样板文件。如果你用抽象类来声明成员,你将被迫使用它,这不是最好的结果。 |
![]() |
2
6
不,您不能这么简单,因为您可能还从另一个类继承,而且Java不允许从类进行多重继承。
最好有一个标准的命名结构。在Java中,我不确定您是否需要采用
--编辑
对于抽象类,我更喜欢
|
![]() |
3
1
抽象类与特定事物上的接口非常不同。 给定的类可以实现任意数量的接口,但只能扩展一个抽象类。 因此,应该区别对待它们,但不应以命名方式对待它们。为接口选择一个简短的描述性名称-您将再次看到它。例如,instance list是一个接口,而arraylist是一个类。 |
![]() |
4
1
我和我的同事们正在使用java的洞日
抽象类实现了最常见的接口方法或最常用的util方法。 您不必从抽象类进行扩展。如果实现的方法对要生成的类有用,则应该从抽象类扩展。 否则,您应该实现接口并再次实现方法。 您只从一个类扩展,所以如果您只能使用50%的方法,那么当您从抽象类扩展时,它不会有任何意义。 |
![]() |
5
1
Java中的接口以“able”结尾。例如:可克隆,可序列化。因此,如果可能,您可以选择以“able”结尾的名称。实现接口的抽象类应以名称“abstract”开头。例如:AbstractLinkedList。具体类不受任何此类命名约定的约束,除非它们应该有意义并以大写字母开头。我建议您选择以“able”结尾的接口名称,或者您可以在i前面加上前缀(最后一种方法,不建议用于java,而是使用c_等ms语言中的默认命名约定),以便将接口与类实现区分开来 |
![]() |
6
1
@珍妮茨米特, 你可以坚持使用cletus-answer来使用car作为接口名,使用carimpl作为实现car接口的类。唯一的问题是,粗略地看一下“car”并不能说明它是一个接口还是一个类,除非你也看一下carimpl。如果你想要,你可以用“I”来坚持前缀界面名称。这是一个微不足道的违规行为。Java实践表明了这一点。你可以去看看 here 当实现它的类表现出这种行为时,接口名称应该以ABLE结尾。例如:如果CAR提供的行为的子类如MOVE、PARK等,则可以有MOVEABLE、PARKABLE等接口名称。这适用于不带后缀“able”的动词接口名称。 --编辑:我的意见是支持icar。 |
![]() |
Eris · 纯虚拟成员有什么优势吗(除了他们可能防止的人为错误)? 2 年前 |
|
James Nguyen · Java多态性:为什么返回错误? 6 年前 |
|
Alex Cristea · 如何从另一个类的数组中打印特定行 6 年前 |
![]() |
juztcode · C语言中的静态和动态分辨率++ 6 年前 |
![]() |
Hugo · 具有多态关系的活动记录获取关联模型 6 年前 |
![]() |
pooya13 · 机器代码层上虚函数和条件执行的区别 6 年前 |
![]() |
Nisba · C中子类类型未知的模型类/子类++ 6 年前 |
![]() |
R zu · 使用多次调用的可替换方法初始化 6 年前 |