O padrão de projetos MVC (Model-View-Controller) tem como
objetivo separar lógica de negócios (Model), interface do usuário
(View) e o fluxo da aplicação (Control). O padrão MVC usa em sua
arquitetura diversos outros padrões de projeto para atingir seu
objetivo.
Em MVC, as classes do Model não devem conhecer nada sobre as
camadas de interface que exibem suas informações. O padrão de
projeto utilizado pelo padrão arquitetural MVC que é responsável
por fazer com que o Model informe mudanças em seu estado
para as interfaces, sem conhecê-las, é o: