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.
- admin publicó hace 3 años
- Debes iniciar sesión para publicar comentarios
Por favor, primero debes inicia sesión para enviar.