Java - can-do接口的命名约定,而不是可以做到的

时间:2013-07-12 00:50:02

标签: java interface naming-conventions

在Java中,我经常遇到带有后缀-able的接口,例如serializableiterable等。这表明实现这些接口的对象具有这样的特性,即某些操作可以来完成,例如:对象可以序列化或可以迭代。如果我想实现一个界面,表明某些操作可以 对象而不是 对象,那该怎么办。

例如,人类有必要沿CanDrive行实现接口,但对于人类实现接口Drivable没有意义,因为无法驱动人类。相反,汽车应该实施Drivable,但肯定不应该实施CanDrive,因为没有汽车应该自行驾驶。

作为界面名称,名称CanDrive听起来非常丑陋。是否有一个后缀约定来命名一个接口,建议这种可以做的关系(而不是可以做到)?

3 个答案:

答案 0 :(得分:1)

对于对其他对象执行操作的类和接口,通常使用agent nouns或名词短语:

Serializer
ClassLoader

答案 1 :(得分:1)

我认为没有太多的命名约定。例如,完成 iterable界面与可以通过 iterator界面相关联。 ComparableComparator等。在我看来,如果有这样的命名“惯例”,您就会使用-or代替-able

答案 2 :(得分:0)

-or-er中结束姓名(取决于英文拼写)。

即使在事物的接口的JDK中也有很多例子:

  • 执行人
  • Conparator
  • DocumentHelper
  • 标记生成器

CanDrive的示例中,您将使用Driver