2010-04-29 11 views
5

En MVC clásico, el modelo notifica la vista sobre los cambios realizados en él. En C# esto significa que tengo que subclasificar la Vista que me interesa y en el registro de clase subclasificado para el evento del modelo. Por ejemplo, si tuviera que implementar MVC usando C# y Winforms, tuve que subclasificar la clase TextBox y luego registrarme dentro del constructor de MyTextBox para los eventos del modelo. ¿Estoy en lo correcto? ¿Cómo se emitió esto en Smalltalk? ¿También se necesita subclasificar cada Vista para registrar los eventos del modelo, o hay alguna manera de agregar dinámicamente eventos a las vistas sobre la marcha?Pregunta acerca de Classic MVC

Gracias

Respuesta

1

Para hacer frente a la sub-pregunta acerca de cómo Smalltalk (de los cuales MVC se origina) se encarga de esto: inicialmente (esto es Smalltalk-80, donde Trygve Reenskaug implementado MVC) era en efecto necesario subclase la vista superclases para su vista específica, registrarlo como suscriptor para cambiar eventos de una subclase de modelo concreta. Los controladores en Smalltalk solo debían delegar o enviar eventos de ventana (especialmente teclado y mouse) al modelo. Básicamente, puede decir que los controladores modifican los objetos del modelo, y la vista solo los mostró. Sin embargo, el concepto de valores dinámicos, o ValueModels, como llegaron a llamarse, hizo que este enfoque fuera obsoleto en VisualWorks Smalltalk. Ahora podría crear un marco de GUI estándar, ya no es necesario crear una subclase, y cada vista podría registrarse como observador en una clase de modelo abstracto. El modelo para la vista ya no sería una clase de modelo, sino un modelo de valor con una interfaz estándar. Más sobre esto aquí: http://st-www.cs.illinois.edu/users/brant/papers/ValueModel/ValueModels.htm

+0

Niza (+1) Dicho esto, hay una razón por la que Adele nunca escribió el libro y solo 'El arte negro de la programación MVC' para 'explicar cosas ... El controlador siempre se contaminó con información específica de la vista y el modelo, que fue lo que llevó al cambio de las ilustraciones, también a algunos otros patrones más recientes como MVP (Model-View-Presenter) –

Cuestiones relacionadas