vista software presentador patrones patron mvc modelo diseño controlador model-view-controller design-patterns web-applications user-interface

model-view-controller - presentador - patrones de diseño de software mvc



¿Conoces algún ejemplo de un patrón de diseño de PAC? (5)

¿Alguien puede señalar cualquier sitio web o aplicación web que utilice el patrón de diseño Presentation-Abstraction-Control en lugar de MVC? Las aplicaciones de escritorio son fáciles de encontrar como esta (por ejemplo, GIMP) pero estoy buscando algo en la web.



Tiene dificultades para obtener una aplicación web que use PAC porque el patrón de herencia PAC funciona bien en el componente personalizado y en el cuadro de diálogo custon que no está realmente presente en la web.

Muchos framwework usan PAC que te permiten anular la presentación, abstracción o control pero cuando se usan en la web, principalmente se transforman a MVC por su simplicidad (por ejemplo, no necesitas tener un nuevo nivel de PAC para cambiar la apariencia de una grilla) ... puedes usar el archivo CSS).

Esta es la mejor respuesta que puedo darte.


Hay más sitios usando PAC que, creo, la gente se da cuenta. Por ejemplo, drupal usa el patrón PAC y hay muchos sitios (y muchos sitios grandes) construidos con drupal. Mucha gente confunde MVC y PAC . Larry Garfield hace un buen trabajo al explicar la diferencia y cómo drupal usa PAC .

En mi investigación sobre este tema, encontré más de una aplicación / marco de código abierto que se llamaban a sí mismos una arquitectura MVC cuando se ajustaban con mayor precisión al patrón PAC. Específicamente en la forma en que el modelo / abstracción, presentación / vista y el controlador interactuaron entre sí.


Sospecho que la mayoría de los sitios escritos usando lo que se llama MVC están usando una versión de PAC pero con una sola tríada. MVC específicamente requiere que la vista sea capaz de comunicarse directamente con el modelo sin pasar por el controlador. Creo que muchos desarrolladores web esperarían que esto siempre pasara por el controlador, independientemente de la dirección de comunicación.


Drupal es un marco web basado en PAC escrito en PHP. :)