Model-View-ViewModel, ou MVVM, é um padrão de design de software destinado a separar os controles da interface do usuário e a lógica do programa no Windows e no software de apresentação gráfica da web. Também conhecido como model-view-binder, ele ajuda a quebrar programas em módulos para o desenvolvimento e reutilização de código de uma maneira mais rápida e simples.
Derivado do padrão Model View Controller, o MVVM ajuda a resolver vários problemas de desenvolvimento para tornar um aplicativo mais fácil de testar, refinar, manter e evoluir. Os designers de IU acham o modelo mais fácil de colaborar ao desenvolver as partes de um aplicativo.
O padrão MVVM
O padrão MVVM possui três componentes: modelo, visualização e o modelo de visualização.
Modelo
O modelo contém os dados do aplicativo que geralmente são estruturas ou classes simples. Pode ser considerado uma representação do modelo de domínio do aplicativo, contendo um modelo de dados junto com uma validação e lógica de negócios. Exemplos de objetos de modelo são Plain Old CLR Objects (POCOs), objetos de transferência de dados (DTOs) e entidades geradas e objetos proxy.
Ver
A visualização define o layout, a estrutura e a aparência do que os usuários veem na tela. É a única coisa com a qual os usuários finais estão familiarizados e com a qual interagem. No MVVM, a visualização está ativa, o que significa que não é totalmente manipulada por um apresentador / controlador. Possui eventos, comportamentos e ligações de dados que requerem conhecimento do modelo subjacente e do modelo de exibição.
Ver Modelo
O modelo de vista está situado entre as camadas do modelo e da vista, que abriga os controles para interagir com a vista. Ele introduz a separação de apresentação, ou a ideia de manter as nuances da visualização separadas do modelo. O modelo de exibição expõe comandos e métodos e aponta para manter o estado da exibição, disparar eventos na exibição e manipular o modelo.
Benefícios do MVVM
Os designers de software preferem MVVM por causa de suas vantagens:
Extensibilidade
O MVVM torna mais fácil para os designers adicionar ou substituir novos pedaços de código. Eles podem redefinir a interface do usuário do aplicativo sem tocar no código, desde que o código esteja inteiramente em XAML.
Testabilidade
É mais fácil para os designers escreverem testes de unidade na lógica principal com MVVM. Os testes de unidade do modelo de visualização exercem a mesma funcionalidade usada pela visualização.
Transparência na comunicação
O modelo de visualização fornece ao controlador de visualização uma interface transparente para preencher a camada de visualização e interagir com a camada do modelo. Isso resulta na comunicação transparente entre as camadas de um aplicativo.