1

在Java中,我经常遇到带有后缀的接口-able,例如serializableiterable等。这表明实现这些接口的对象具有可以对其执行某些操作的特性例如对象可以被序列化或可以是迭代了一遍。如果我想实现一个接口,该接口表明某些操作可以对​​象而不是对象完成,该怎么办?

例如,人类按照以下方式实现界面是有意义的,CanDrive但人类无法实现界面是没有意义的Drivable,因为人类无法被驱动。相反,汽车应该实施,Drivable但肯定不应该实施CanDrive,因为任何汽车都不应该自动驾驶。

CanDrive作为接口名称,这个名字对我来说听起来非常难看。是否有命名接口的后缀约定来暗示这种可以做的关系(而不是可以做的)?

4

3 回答 3

1

对其他对象执行操作的类和接口通常使用代理名词或名词短语:

Serializer
ClassLoader
于 2013-07-12T00:57:35.487 回答
1

我认为没有太多的命名约定。例如,done to iterable interface 与can-be-done-by iterator接口相关。ComparableComparator我看来,如果有这样一个命名“约定”,你会使用-or而不是-able.

于 2013-07-12T00:57:41.913 回答
0

-or名称以or结尾-er(取决于英文拼写)。

甚至在 JDK 的接口中也有很多例子

  • 执行人
  • 比较器
  • 文档助手
  • 分词器

等等。

在您的示例中CanDrive,您将使用Driver.

于 2013-07-12T01:43:16.237 回答