¿Cómo funciona un sistema MVC?

Estoy tratando de aprender el patrón MVC, pero cada lugar dice algo diferente. Así que ahora no sé cuál es el verdadero MVC.

Así que supongo que es el MVC más puro:

Modelo essolo datos y notificar cambios de datos.Ver lee los mensajes de laModelo para actualizar la vista.Controlador lee la entrada del usuario deVer y cambia el modelo según.

Implementar

Modelo no conoce a nadieVer sabe elModelo.Controlador sabe ambosVer yModelo.

Pseudocódigo

/* Model */
class Color{ 
  color = blue;
  setColor(color);
  notifyUpdate();
}
/* View */
class ColorPicker(model){
  model.register(update);
  update(){
    this.colorToExhibit = model.color;
  }
}
/* Controller */
class Colorize(view, model){
  view.register(update);
  update(color){
    model.setColor(color);
  }
}

Algunas preguntas:

¿Está bien?No puedo ver porqueVer no puede cambiar elModelo directamente, pero a través del controlador.Supongamos que tengo animaciones para realizar después de una acción. ¿Quién debe manejar esta animación: el modelo, la vista o el controlador? Además: ¿la lógica de animación es parte del modelo, vista o controlador? Más: Supongamos un juego de poker. Después de que el usuario elija una acción (por ejemplo, 'Levantar'), el sistema debe reproducir una animación (por ejemplo, las fichas que van del jugador al escritorio). ¿Cómo puedo ver este ejemplo de póker (con animación) como un MVC? ¿Puedes explicar y dar un pseudocódigo al respecto?

Gracias.

Respuestas a la pregunta(3)

Su respuesta a la pregunta