Saltar al contenido

Nomenclatura de interfaces en Java

Te doy la bienvenida a nuestro sitio web, en este sitio vas a hallar la solucíon que necesitas.

Solución:

Prefiero no usar un prefix en las interfaces:

  • los prefix perjudica la legibilidad.

  • El uso de interfaces en clientes es la mejor manera estándar de programar, por lo que los nombres de las interfaces deben ser lo más breves y agradables posible. La implementación de clases debería ser más fea para desalentar su uso.

  • Al cambiar de una clase abstracta a una interfaz, una convención de codificación con prefix Implica cambiar el nombre de todas las ocurrencias de la clase — ¡no es bueno!

¿Hay realmente una diferencia entre:

class User implements IUser

y

class UserImpl implements User

si todo lo que estamos hablando es de convenciones de nombres?

Personalmente prefiero NO preceder la interfaz con I como quiero codificar para la interfaz y considero que ser más importante en términos de la convención de nomenclatura. Si llamas a la interfaz IUser entonces cada consumidor de esa clase necesita saber que es un IUser. Si llamas a la clase UserImpl entonces solo la clase y su contenedor DI saben sobre el Impl parte y los consumidores simplemente saben que están trabajando con un User.

Por otra parte, las veces que me he visto obligado a usar Impl porque no se presenta un nombre mejor han sido pocos y espaciados porque la implementación se nombra de acuerdo a a la implementación porque ahí es donde es importante, por ejemplo

class DbBasedAccountDAO implements AccountDAO
class InMemoryAccountDAO implements AccountDAO

Puede haber varias razones por las que Java generalmente no usa la convención IUser.

  1. Parte del enfoque orientado a objetos es que no debería tener que saber si el cliente está usando una interfaz o una clase de implementación. Entonces, incluso List es una interfaz y String es una clase real, se les puede pasar un método a ambos; no tiene sentido distinguir visualmente las interfaces.

  2. En general, preferiremos el uso de interfaces en el código del cliente (preferimos List a ArrayList, por ejemplo). Por lo tanto, no tiene sentido hacer que las interfaces se destaquen como excepciones.

  3. La convención de nomenclatura de Java prefiere nombres más largos con significados reales a los prefijos de estilo húngaro. Entonces, ese código será lo más legible posible: una Lista representa una lista y un Usuario representa un usuario, no un IUser.

Te mostramos las reseñas y valoraciones de los lectores

Recuerda que puedes dar difusión a este enunciado si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *