Como funciona um sistema MVC?

Estou tentando aprender o padrão MVC, mas cada lugar diz algo diferente. Então agora eu não sei o que é o verdadeiro MVC.

Então eu estou supondo que é o MVC mais puro:

Modelo éapenas dados e notificar alterações de dados.Visão lê as mensagens doModelo para atualizar a exibição.Controlador lê a entrada do usuário deVisão e altera o modelo de acordo.

Implementando

Modelo não conhece ninguém.Visão conhece oModelo.Controlador conhece ambosVisão eModelo.

Pseudo-có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);
  }
}

Algumas perguntas:

Isso esta certo?Eu não consigo ver porque oVisão não pode mudar oModelo diretamente, mas através do Controlador.Suponha que eu tenha animações para serem executadas após uma ação. Quem deve manipular essa animação: o modelo, a exibição ou o controlador? Além disso: a lógica de animação é parte do modelo, exibição ou controlador? Mais: Suponha um jogo de poker. Depois que o usuário escolher uma ação (por exemplo, "Aumentar"), o sistema deve reproduzir uma animação (digamos, as fichas indo do ponto do jogador até a mesa). Como posso ver este exemplo de poker (com animação) como um MVC? Você pode explicar e dar um pseudocódigo sobre isso?

Obrigado.

questionAnswers(3)

yourAnswerToTheQuestion