O que MVVM? Entenda o Model-View-ViewModel

MVVM separa a interface (View) da lógica (Model) em softwares. A ViewModel atua como ponte entre View e Model, gerenciando a interação e o fluxo de dados. Isso torna o código mais organizado, testável e reutilizável.

MVVM é um padrão de design para separar interface, lógica e dados em softwares. A View é a interface gráfica, a ViewModel liga a View à Model, que contém a lógica e os dados.

Resposta rápida: o que é MVVM?

MVVM, Model-View-ViewModel, é um padrão arquitetural usado para separar dados, interface e lógica de apresentação em aplicações de software. O Model representa regras e dados do domínio, a View exibe a interface para o usuário e o ViewModel prepara estados, comandos e dados para que a View funcione sem concentrar regras de negócio. Essa separação melhora testabilidade, organização e manutenção, especialmente em aplicações com interfaces ricas. O MVVM é comum em tecnologias como WPF, Xamarin, Android, SwiftUI e frameworks modernos que trabalham com binding ou estado reativo. Seu principal benefício é reduzir o acoplamento entre tela e lógica, permitindo alterar a interface sem reescrever regras centrais. Para aplicar bem, mantenha responsabilidades claras e evite transformar o ViewModel em uma classe excessivamente grande.

O que é MVVM – Model View ViewModel?

Model-view-viewmodel (MVVM) é um padrão de arquitetura de software ou esquema de design de software. É uma variante do padrão “Presentation Model Design” de Martin Fowler.

O MVVM abstrai o status “view” e o comportamento. Enquanto o modelo de “apresentação” abstrai uma visão (cria um modelo de visão) de uma maneira que não depende de uma plataforma de interface de usuário específica.

Model-view-viewmodel (MVVM) é um padrão de arquitetura de software ou esquema de design de software. É uma variante do padrão Presentation Model Design de Martin Fowler.
Model-view-viewmodel (MVVM) é um padrão de arquitetura de software ou esquema de design de software. É uma variante do padrão Presentation Model Design de Martin Fowler.

O MVVM foi desenvolvido por Ken Cooper e Ted Peters da Microsoft para simplificar a programação de eventos de interfaces de usuário usando recursos do Windows Presentation Foundation (WPF) (Microsoft .NET Graphical System) e do Silverlight (Derivative Internet Application).

O padrão arquitetônico foi anunciado pela primeira vez no blog John Gossman em 2005.

Model (modelo)

  • O modelo no MVVM é uma implementação do modelo de domínio do aplicativo que inclui um modelo de dados juntamente com a lógica de negócios e a lógica de validação.
  • Exemplos de objetos de modelo incluem repositórios, objetos de negócios, objetos de transferência de dados (DTOs), objetos CLR antigos e simples (pocos) e objetos gerados por entidades e proxy.

View (visão)

  • A visão é responsável por definir a estrutura, o layout e a aparência do que o usuário vê na tela.
  • Idealmente, a exibição é definida exclusivamente com XAML, com um número limitado de code-behinds que não contém lógica de negócios.

ViewModel

  • O modelo de visão age como um intermediário entre a visão e o modelo, e é responsável por gerenciar a lógica da visão.
  • Geralmente, o modelo de visualização interage com o modelo invocando métodos nas classes de modelo.
  • O modelo de vista, em seguida, fornece dados do modelo em uma forma que a visão pode facilmente usar.

Binder (fichário)

  • O mecanismo fundamental para esse padrão com o qual o modelo de exibição e a exibição são constantemente sincronizados.
  • Geralmente por meio de uma sintaxe declarativa dentro da própria exibição.
  • Isso implica que as alterações nos dados feitas pelo usuário por meio da visualização serão relatadas automaticamente no modelo de visualização. Sem esse ônus para o desenvolvedor.

Da mesma forma, quaisquer alterações feitas nos dados contidos no modelo de exibição serão representadas automaticamente na exibição.

Mais livros e downloads relacionados

A seguir, recomentamos outros artigos e livros sobre engenharia de software, com discussões essenciais para o sucesso de qualquer projeto de desenvolvimento de software.

Francilvio Roberto Alff

Olá! Eu sou Francilvio Alff, mas você pode me chamar de Chico Alff. Vou fazer o m3u jabá rapidinho, eu prometo! :DMinha formação acadêmica é diversificada, com raízes em Engenharia de Software e Análise e Desenvolvimento de Sistemas para a Internet. Também mergulhei na História e na Língua Italiana em minha jornada acadêmica, embora essa aventura ainda não tenha sido concluída.Meu primeiro contato profissional e real com o incrível mundo dos sistemas foi em 2007, enquanto fazia a minha primeira graduação na Itália. Trabalhei na implantação da solução Orange Salsa para a gestão dos "informatori scientifici del farmaco" na colossal multinacional farmacêutica GlaxoSmithKline (GSK).Com o passar dos anos, me vi cada vez mais envolvido pela tecnologia, e ao longo dessas quase duas décadas, me especializei em Engenharia de Software, mais precisamente nas disciplinas de Análise de Requisitos, Análise de Negócios e Gerenciamento de Projetos.Nesse percurso, trabalhei em projetos desafiadores para a administração pública, soluções de ERP para o varejo e indústria, inteligência artificial aplicada em soluções IOT e linguagem neural..Em 2011 fundei juntamente com um velho amigo e tutor o site https://AnalisedeRequisitos.com.br que mantenho até hoje como uma prova viva do meu comprometimento com a engenharia de software.Minha determinação e meu desejo constante de aprender continuam me impulsionando em direção ao futuro, onde pretendo continuar unindo minha paixão pela tecnologia com meu amor pela aprendizagem e minha curiosidade insaciável. Junte-se a mim nessa jornada!

Artigos relacionados