Ayer mientras investigaba y escribía sobre los anti-patrones, me llamo la atención un que parecía referirse a los view models. Me refiero al Vagón Gitano, ya que en la descripción habla de un objeto cuya única funcionalidad es llevar datos de un lugar a otro, o sea su razón de ser consiste en existir para llevar información.
Un (Objeto para transferencia de datos) Data Transfer Object no es algo nuevo o novedoso, se ha usado en Arquitectura de software por mucho tiempo, es muy útil para encapsular datos.
Este tipo de objetos puede caer en la clasificación de anti-patrón, ya que no contiene más lógica que las propiedades, por si solas. Su uso más común es como objeto de comunicación entre capas, por ejemplo UI (Views) y la capa de lógica de negocios o de flujo del programa, (Controller).
Si lo analizan un momento verán que se trata de un objeto tonto, pero en MVC cumple con una función mas allá de servir de transporte para los datos. Este tipo de estructuras que se denominan ViewModels en MVC, sirven para que la capa de presentación o UI, no sea cohesiva.
El ViewModel sirve a manera de contrato entre las dos capas, sin que los cambios o ajustes en el Model puedan repercutir en la UI. Notaran que resalte en negritas lo del contrato, para que pudieran identificar, la verdadera diferencia entre el anti-patrón y el DTO; podemos decir que es un anti-patrón cuando creamos objetos para mover parámetros entre nuestras clases, dentro de la misma capa.
Aun que usar más de 5 parámetros en un método resulta bastante complicado, la recomendación dicta que si tu método necesita esos parámetros, pásale esos parámetros; siempre y cuando el diseño sea el correcto y no haya otra manera de solucionarlo. Si puedes evitar el Vagón Gitano, evítalo, ya que crea sobre carga a la aplicación el crear una instancia de un objeto solo para enviar unos datos.
No hay comentarios:
Publicar un comentario