La mayoría de los lenguajes OO prefieren sus nombres de interfaz con una I mayúscula, ¿por qué Java no hace esto? ¿Cuál fue la razón para no seguir esta convención?
Para demostrar lo que quiero decir, si quisiera tener una interfaz de usuario y una implementación de usuario, tendría dos opciones en Java:
- Clase = Usuario, Interfaz = Interfaz de usuario
- Clase = UserImpl, Interfaz = Usuario
Donde en la mayoría de los idiomas:
Clase = Usuario, Interfaz = IUser
Ahora, podría argumentar que siempre puede elegir un nombre más descriptivo para la implementación del usuario y el problema desaparece, pero Java está presionando un enfoque POJO para las cosas y la mayoría de los contenedores IOC usan DynamicProxies ampliamente. Estas dos cosas juntas significan que tendrás muchas interfaces con una sola implementación de POJO.
Entonces, supongo que mi pregunta se reduce a: "¿Vale la pena seguir la convención de nomenclatura de interfaz más amplia, especialmente a la luz de hacia dónde se dirigen Java Frameworks?"
NetworkInterface
, DialogInterface
, etc.