在Java中,我经常遇到带有后缀的接口-able
,例如serializable
,iterable
等。这表明实现这些接口的对象具有可以对其执行某些操作的特性,例如对象可以被序列化或可以是迭代了一遍。如果我想实现一个接口,该接口表明某些操作可以由对象而不是对象来完成,该怎么办?
例如,人类按照以下方式实现界面是有意义的,CanDrive
但人类无法实现界面是没有意义的Drivable
,因为人类无法被驱动。相反,汽车应该实施,Drivable
但肯定不应该实施CanDrive
,因为任何汽车都不应该自动驾驶。
CanDrive
作为接口名称,这个名字对我来说听起来非常难看。是否有命名接口的后缀约定来暗示这种可以做的关系(而不是可以做的)?