Pregunta

Fui a una reunión de un grupo de usuarios de .NET esta noche, y parte de ella giraba en torno al patrón del modelo vista-modelo, y me pregunté si estaba calificado como patrón.
El problema que tengo es que M-V-VM es extremadamente específico de la tecnología. Si no usa WPF y su mecanismo de enlace, no veo cómo podría usar ese patrón.
Por el contrario, la mayoría de " clásico " Los patrones son en gran parte agnósticos tecnológicos. El mayor supuesto que hacen es que el lenguaje utilizado está orientado a objetos, y generalmente admite la herencia. Más allá de eso, los patrones clásicos consisten principalmente en plantear un problema de diseño general y en proponer un enfoque para resolverlo, pero son posibles múltiples implementaciones o variaciones. Mi pregunta es, entonces, ¿dónde traza la línea, entre qué es un patrón de diseño y qué es una recomendación sobre cómo usar un marco muy específico? Si sabe cómo implementarlo y qué lenguaje y tecnología necesita usar para hacerlo, ¿sigue siendo un patrón?

¿Fue útil?

Solución

¿Pueden los conceptos subyacentes que son necesarios para el enfoque " " ¿Se puede volver a implementar el trabajo en otra plataforma sin violar ninguna patente, propiedad intelectual o cantidades de trabajo obscenas? Si es así, diría que definitivamente podemos seguir llamándolo un patrón de diseño en el sentido en el que te encuentras, solo uno nuevo que no es fácil de hacer todavía . (Aunque incluso los enfoques específicos de la plataforma pueden seguir siendo patrones de diseño para la comunidad más pequeña que puede usarlos).

También tenga en cuenta que MVVM es solo una implementación específica del Patrón de modelo de presentación presentado por Martin Fowler , que ciertamente es " clásico " como dices, y plataforma-agnóstica.

" Nada nuevo bajo el sol " Como dicen, solo diferentes arreglos de las mismas ideas. Los principios se refinan todo el tiempo, rara vez se inventan nuevos.

Otros consejos

Los patrones no son una isla en algún mar de otras cosas. No es blanco y negro que algo sea un patrón o no; todos los patrones pueden establecerse en una escala y tener varios tonos de gris entre genéricos y dominios específicos, entre el proceso y el código, y casi cualquiera de los otros dos postes que elija.

Si es una receta que vale la pena compartir o reutilizar incluso en ligeramente diferentes circunstancias, es un patrón.

Sí, los patrones de diseño a menudo dependen del lenguaje de programación y de la tecnología en uso: por ejemplo, los DP que se ocupan de la propiedad explícita de los recursos juegan mal con los lenguajes recolectados en la basura, uno de ellos trabaja en torno a las limitaciones de la tipificación en tiempo de compilación, juega mal con la dinámica idiomas, etc., eso es normal, perfectamente bien, esencialmente inevitable.

" Una recomendación " difiere de " un patrón de diseño " no por el contexto de la tecnología, sino por la amplitud y, especialmente, por la profundidad: un DP adecuado identifica dos o más usos desarrollados independientemente de enfoques similares, profundiza más para ver qué fuerzas comunes " estaban tratando con, y arpas desde allí, en un hermoso meta-formato de peso pesado. Por el contrario, una recomendación es mucho menos formal, profunda y amplia.

Los DP nunca se inventan , se descubren al reflexionar sobre el código existente (dos o más ocurrencias desarrolladas independientemente) que tratan con situaciones similares, identificando los puntos comunes como " fuerzas " conduciendo las soluciones, etc., etc. " DP " es un término tan popular y pegadizo que se usa MUCHO más de lo que debería ser -0- volver a las fuentes y leer o releer, Timeless Way of Building y sus otras obras, si se ha perdido en el camino de la moda de DP, le ayudarán a encontrar el camino nuevamente. !

  

Si no usa WPF y su enlace   Mecanismo, no veo como pudiste.   usa ese patrón.

Silverlight y Moonlight también admiten MVVM.

" Los lenguajes se basan en paradigmas " ;, cada paradigma tiene diferentes maneras de resolver un problema. Los patrones de diseño son soluciones comunes, no importa si es específico del idioma o no.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top