La maggior parte delle lingue OO prefissa i nomi delle loro interfacce con la I maiuscola, perché Java non lo fa? Qual era la logica per non seguire questa convenzione?
Per dimostrare cosa intendo, se volessi avere un'interfaccia utente e un'implementazione utente avrei due scelte in Java:
- Class = User, Interface = UserInterface
- Class = UserImpl, Interface = User
Dove nella maggior parte delle lingue:
Class = User, Interface = IUser
Ora, potresti sostenere che potresti sempre scegliere un nome più descrittivo per l'implementazione dell'utente e il problema scompare, ma Java sta spingendo un approccio POJO alle cose e la maggior parte dei contenitori IOC utilizzano ampiamente DynamicProxies. Queste due cose insieme significano che avrai molte interfacce con una singola implementazione POJO.
Quindi, suppongo che la mia domanda si riduca a: "Vale la pena seguire la più ampia convenzione di denominazione dell'interfaccia, specialmente alla luce di dove sembra che Java Frameworks stia andando?"
NetworkInterface
, DialogInterface
e così via