2009-04-28 8 views
9

solo quiero saber ¿Cuál es la diferencia real entre MVC y MVC Modelo2 en el desarrollo¿Cuál es la diferencia real entre MVC y MVC Modelo2

+0

Una buena explicación se puede encontrar en VolkerK

+0

Creo que estos 2 enlaces contienen la información real que está tratando de descubrir: [Modelo1] (http://en.wikipedia.org/wiki/Model_1), [Modelo2] (http://en.wikipedia.org/wiki/M odel_2) –

Respuesta

19

Para ilustrar las respuestas anteriores (y añadir explicaciones a this article):

MVC2 es un abuse of language refiriéndose en realidad a la arquitectura JSP Modelo 2, en contraposición a JSP Modelo 1:

la primera tecnología Java para el desarrollo web del lado del servidor fue el servlet.
Escribir aplicaciones con servlets fue muy similar a escribir aplicaciones CGI en Perl en que toda la salida tuvo que construirse como cadenas desde el código Java.
Esto fue muy tedioso y propenso a errores. También dificultó que los diseñadores web sin experiencia en Java pudieran alterar el aspecto de las páginas generadas por los servlets.

alt text http://www.javaworld.com/javaworld/jw-12-1999/images/MODEL1_sml.gif

Entonces vino JSP. Las JSP, al igual que las ASP de Microsoft y el popular lenguaje de scripting PHP, tratan todo como texto de plantilla, pero permiten la inserción de código Java en etiquetas llamadas scriptlets y expresiones JSP.
Esto permitió a las personas trabajar en aplicaciones del lado del servidor tal como lo harían con los otros lenguajes de scripting populares, pero tenía un par de inconvenientes.

  • No hubo separación de preocupaciones.
  • Una secuencia de comandos mantendría el código de la base de datos, la lógica de negocio, el marcado HTML y cualquier código de JavaScript necesario para la representación de la página final.
  • La reutilización de código fue difícil, al igual que las pruebas automáticas.

Esto se conoce como programación JSP "Modelo 1".

MVC or the Model View Controller pattern era una técnica común para separar las diversas preocupaciones en el código GUI inventado por Trygve Reenskaug, trabajando en Smalltalk para Zerox.

En algún momento quedó claro que esta técnica podría adaptarse a las aplicaciones Java EE para lograr el mismo nivel de separación.
Hacerlo implica escribir la capa del Modelo como Beans o Plain Old Java Objects (POJO), utilizando servlets como Controller, y luego, cuando todo el trabajo pesado se realiza, reenviar a un JSP para formatear y marcar los resultados.
Las aplicaciones Servlet/JSP escritas utilizando y la arquitectura MVC se conocen como programación JSP Modelo 2.

alt text http://www.javaworld.com/javaworld/jw-12-1999/images/MODEL2_sml.gif

Debido a este patrón existía en una forma diferente antes de ser utilizados en aplicaciones de servlet/JSP, se hace referencia a veces como "MVC2". Este nombre generó cierta confusión ya que implicaba que hay un MVC1 para aplicaciones de servlets, que no es así.
Basta con decir MVC.

+0

Gracias por dar ooooooood ans, tengo que conformarme a tu respuesta –

+0

@Ashvin De nada – VonC

+0

@VonC - No es una buena idea copiar sin hacer una referencia. Proporcione la referencia en su publicación original. Gracias. –

3

Una nota histórica graciosamente en los términos ...

[Me gustaría poder encontrar el papel ... (he intentado googlear pero no hubo suerte!)]

Hace un tiempo, alguien escribió un documento que describe dos enfoques MVC para aplicaciones web. En ella, tenía dos figuras.

Las leyendas eran "modelo 1" y "modelo 2".

Ellos no fueron pensados ​​como nombres reales de los patrones (más como "figura 1" y "Figura 2"), pero alguien lo leyó y escribió sobre él, como si eso fuera un nombre de patrón ...

(alguien tiene que el árbitro?)

VonC describe la diferencia bastante bien

+0

Interesante (+1). Simplemente copio y vuelvo a formatear el artículo de javaworld, en realidad. En cuanto a su comentario, esta presentación (http://www.javapassion.com/j2ee/MVCPatternAndFrameworks.pdf) menciona "MVC modelo 1" y "MVC modelo 2". (pero puede ser un subproducto de su trabajo, y no el documento real al que se refiere) – VonC

+0

Arf, en esta "hoja de respuestas" (http://csdl.ics.hawaii.edu/~johnson/613s05 /613s05FinalAnswerKey.pdf), el Modelo MVC "1" está orientado a las aplicaciones del lado del cliente, como una aplicación GUI basada en Swing. En este caso, todo el código de la aplicación existe en una sola JVM en un único cliente. MVC El modelo "2" está orientado hacia un contexto de aplicación web cliente-servidor, en el cual el usuario está emitiendo solicitudes HTTP a un servidor. A diferencia del Modelo 1, la arquitectura del Modelo 2 requiere la implementación de un servlet único que actúa como Controlador y recibe todas las solicitudes de los navegadores del lado del cliente. – VonC

+0

Esa presentación de diapositivas está cerca, pero evoca el Modelo 1/Modelo 2 como si fueran términos reales ... "Modelo 2" no es realmente un paso evolutivo como dicen; es solo una implementación diferente de la separación modelo/UI. –

Cuestiones relacionadas