Inicio » Comunidad » Uso de prefijos y sufijos en las interfaces

Uso de prefijos y sufijos en las interfaces

0
0

Una de las cosas que considero más importante a la hora de desarrollar es la definición de los nombres en métodos, clases, interfaces… De hecho, es uno de los temas recurrentes en nuestra formación. Si un nombre no está bien definido puede provocar, por ejemplo, violar los principios SOLID. Es por eso que hoy he decido hablar sobre los prefijos y sufijos que se suelen añadir a las interfaces en los diferentes lenguajes.
Supongamos que queremos crear un repositorio de usuario de MySQL y otro de PostgreSQL. Para implementarlos, utilizaríamos el patrón estrategia: MYSQLUserRepository, PostgreSQLUserRepository y su tipo UserRepository. Ahora bien, el nombre de su tipo, que es una interface, se nombraría de la siguiente manera:

IUserRepository - #C
UserRepositoryInterface - PHP
UserRepository - Java
UserRepository - Typescript
UserRepository - Go

Algo que genera mucha polémica es la utilización de estos prefijos y sufijos sobre las interfaces. Bajo mi punto de vista, utilizarlos genera un detalle de implementación del propio lenguaje de programación. Con lo cual, va en contra del principio de diseño: “Program to interfaces, Not Implementations” ya que nos estamos acoplando a los detalles del propio lenguaje. No obstante, si el lenguaje tiene como convención utilizarlos, prefiero utilizarlos. De no ser así, se estarían generando incoherencias entre tu desarrollo y el framework o librerías que se utilice. Por ejemplo, en php se tiene como convención añadir el sufijo Interface. Eso quiere decir que si utilizo el framework Symfony de php parte de mi código tendrá de forma obligatoria estos sufijos. Por tanto, en este caso veo recomendable añadir los sufijos a todas las interfaces que creemos en la aplicación.

0 resultados
Tu respuesta

Por favor, primero debes para enviar.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad