Es ist üblich, '-able' als Suffix für Schnittstellen zu verwenden, z
Serializable Printable Enumerable Drinkable Shootable Drehbar
Ich dachte, dass "Can-" besser sein könnte, weil es aussagekräftiger sein könnte. Ja, es ist wortreicher und fügt dem Schnittstellennamen Rauschen hinzu. Insbesondere können passive Verben verwendet werden.
ZB 1 bedeutet Shootable, dass das Objekt schießen kann (eine Waffe könnte dies implementieren), oder bedeutet es, dass auf es geschossen werden kann (eine Zieltafel könnte dies implementieren). Mit dem Präfix "Can-" wäre ersteres "CanShoot" und letzteres "CanBeShotAt" oder "CanShootAt".
ZB 2 Ein Dokument 'CanBePrinted' und ein Drucker 'CanPrint'
Oder sollten wir uns an '-Able' halten und die Dokumentation den Kontext bereitstellen lassen?
Irgendwelche Meinungen.
class Cannibal implements Can, Able {}