
Qual é a porta padrão do MySQL? Veja como consultar e alterar
| 22/10/26Descubra qual é o número padrão da porta MySQL, como verificar a configuração atual, alterar o acesso e proteger seu banco de dados
Em resumo:
MVVM (Model-View-ViewModel) é um padrão de arquitetura de software que separa regras de negócio, interface e lógica de apresentação.
O Model cuida dos dados e das regras; a View é a interface; o ViewModel prepara informações e ações para a tela.
A ligação entre View e ViewModel é tradicionalmente feita por data binding, ou vinculação de dados: um mecanismo que mantém a interface sincronizada com o estado exposto pelo ViewModel.

A distinção entre lógica de negócio, interface e apresentação define as responsabilidades de Model, View e ViewModel.
O ViewModel faz a ponte entre a tela e o Model, mas não assume o comportamento do negócio.
Uma forma prática de compreender a divisão é observar o tipo de decisão envolvido. Calcular um total pertence ao negócio. Exibir um campo pertence à interface. Preparar o resultado para exibição e controlar o estado da tela pertencem à apresentação.
O Model reúne o que a aplicação sabe e as regras que aplica a esses dados. Sua composição varia: entidades, acesso a dados, serviços e validações são exemplos, não uma estrutura obrigatória de arquivos.
A ausência de dependência da interface favorece a reutilização. Uma regra de cálculo permanece separada dos botões e campos usados para apresentar seu resultado. Isso permite reutilizar a lógica em diferentes telas, respeitadas as demais dependências da implementação.
A View é a parte com a qual o usuário interage. Ela apresenta informações e recebe cliques, toques e digitação. Sua responsabilidade é a interface, não a decisão sobre regras de negócio.
No exemplo de um pedido, a View exibe o campo de cupom, o botão para aplicá-lo e o total. A regra que determina o desconto pertence ao Model.
O ViewModel concentra a lógica de apresentação. Ele prepara os dados recebidos do Model, mantém o estado necessário à exibição e expõe as ações que a View aciona.
Estado é o conjunto de informações que descreve a situação da tela. Comandos são ações expostas pelo ViewModel, como solicitar a aplicação de um cupom. Essa coordenação não transfere a regra do desconto para a lógica de apresentação.
A tabela reúne esses limites: o Model mantém dados e regras sem depender da tecnologia da interface; o ViewModel expõe estado e ações sem conhecer a tela. Essa separação de responsabilidades e sua relação com testes e manutenção permite avaliar a lógica de apresentação sem instanciar uma interface visual.
| Componente | Responsabilidade | Exemplos de conteúdo | Limite |
|---|---|---|---|
| Model | Manter os dados e executar a lógica de negócio | Entidades, acesso a dados, serviços de negócio e validação | Não depende da tecnologia usada na interface |
| View | Exibir a interface e receber a interação do usuário | Telas, botões, campos e listas | Não contém regras de negócio |
| ViewModel | Preparar dados para exibição, manter o estado da tela e expor ações | Propriedades, comandos e métodos de apoio à apresentação | Não referencia diretamente a View nem concentra o comportamento do negócio |
O ViewModel expõe estado e ações sem manter uma referência direta à View. A interface se conecta a esses elementos por binding ou por uma ligação manual, sem exigir que o ViewModel conheça a tela que o utiliza.
Com essa separação, os testes unitários, que verificam uma unidade de código isoladamente, avaliam a lógica de apresentação sem instanciar uma interface visual.
No exemplo hipotético do pedido, o teste verifica o estado exposto após a ação de aplicar o cupom, sem precisar clicar em um botão real.
Na manutenção, a divisão ajuda a localizar a responsabilidade envolvida em uma alteração. Uma mudança restrita aos elementos visuais pode permanecer na View.
Uma mudança na regra do cupom pertence ao Model. Já uma alteração na preparação do resultado para exibição envolve o ViewModel.
Em uma implementação com binding, o fluxo de interação entre View, ViewModel e Model passa pela ação do usuário, pelo processamento no Model e pela atualização do estado exibido.
Considere um exemplo hipotético: uma tela de pedido com o botão “Aplicar cupom”. A sequência abaixo ilustra a divisão de responsabilidades, sem estabelecer uma implementação obrigatória para todas as plataformas.
Nesse fluxo, a View não calcula o desconto. O ViewModel coordena a solicitação e prepara o resultado para exibição, enquanto a regra do cupom permanece no Model.
No ecossistema .NET, a interface INotifyPropertyChanged é um exemplo de mecanismo para notificar mudanças em propriedades. Ela não é um requisito universal do MVVM: o mecanismo de notificação varia conforme a implementação.
O data binding sincroniza a interface com o estado do ViewModel. Em uma vinculação configurada para refletir mudanças, a atualização de uma propriedade se manifesta no elemento correspondente da View.
Essa automatização reduz o código repetitivo necessário para manter a tela consistente com os dados de apresentação. No exemplo do pedido, o total exposto pelo ViewModel é vinculado ao elemento que o exibe.
A ligação entre View e ViewModel por data binding ou implementação manual preserva a distinção entre o padrão e o mecanismo usado para conectá-los. Em ambientes sem binding disponível, a sincronização fica a cargo do código escrito pelo desenvolvedor.
O MVVM é associado ao contexto de aplicações WPF (Windows Presentation Foundation) e ao aproveitamento do data binding. Seu uso não se limita a esse contexto: o padrão também organiza aplicações desktop e mobile que exigem separação de responsabilidades.
É a organização em Model, View e ViewModel. O Model reúne dados e regras de negócio; a View é a interface; o ViewModel prepara dados e ações para a apresentação. A divisão descreve responsabilidades, não uma lista obrigatória de pastas.
O data binding mantém a View sincronizada com o estado exposto pelo ViewModel. Ele automatiza essa ligação e reduz o código repetitivo de atualização da interface.
Para manter a lógica de apresentação separada da interface visual. Sem essa dependência, os testes verificam o estado e as ações do ViewModel sem criar uma tela.
O data binding é o mecanismo tradicional de ligação entre View e ViewModel, mas essa ligação também admite implementação manual. A separação entre negócio, interface e apresentação continua sendo o conceito central.
O MVVM é usado em aplicações com interface gráfica que exigem separação de responsabilidades, como aplicações desktop e mobile. Os mecanismos de comunicação entre os componentes variam conforme a plataforma e a implementação.
Se você quer ingressar ou crescer no mercado da tecnologia, a Allevo Tech oferece formações práticas em áreas de alta demanda, como Engenharia de Software, Ciência de Dados e Inteligência Artificial.
As trilhas são estruturadas para desenvolver competências técnicas e preparar você para os desafios do mercado de trabalho.
Clique no botão abaixo e conheça as formações da Allevo Tech que podem impulsionar a sua trajetória profissional.


Descubra qual é o número padrão da porta MySQL, como verificar a configuração atual, alterar o acesso e proteger seu banco de dados

Entenda como a estrutura if funciona no Java. Aprenda a utilizar o else, o else if e o operador ternário para criar sistemas dinâmicos

Descubra o que é e como funciona os laços de repetição Python. Aprenda a usar estruturas como for, while e range para automatizar tarefas