Existe uma boa prática que é comum a grande maioria de tipo de software: separar a interface de usuário da lógica de negócio. Os usuários de um sistema interagem com o mesmo pela camada de apresentação (Presentation Layer, UI), nela estão os controles e componentes visuais necessários para apresentação e solicitação de informações. Essa camada por sua vez se comunica com uma camada de serviço, que simplifica para a UI as rotinas através da criação de um API que abstraia um processo maior que envolva outras ações. Assim, a interface acessando apenas os serviços, a implementação desses serviços pode mudar sem necessariamente exigir mudança na UI. É muito importante que o código dessas camadas não se misture. Como a lógica da interface não está codificada e amarrada nos controles visuais utilizados, pode-se facilmente trocar esses controles sem influenciar o funcionamento de uma tela ou página por exemplo. Outro ponto favorável é a possibilidade de se testar a aplicação de forma automatizada. Ao fazer a separação é possível testar o comportamento da UI sem ter a necessidade de executar o software propriamente dito. Mas, existe um porém. Ao separar de forma correta não só a camada de interface, mas todas as camadas lógicas necessárias, há um aumento na complexidade do código, o que pode ser um problema para o entendimento do todo por parte de desenvolvedores menos experientes. Para alcançar essa separação vários estudos ao longo dos anos foram feitos. Esses estudos e implementações levaram à criação dos chamados Padrões de Projeto. Um padrão de projeto é uma solução para um problema recorrente. A separação da camada de interface é um problema recorrente em todo software. Assim, foram desenvolvidos alguns padrões que cuidam disso, os mais conhecidos são: Model-View-Controller (MVC) e Model-View-Presenter (MVP). Esses são padrões bem genéricos, que podem ser implementados em qualquer tecnologia, já que um padrão não define código e sim, a forma como solucionar o problema. O WPF surgiu como base para desenvolvimento de aplicativos Windows e que gradativamente vem substituindo a plataforma anterior, o Windows Forms. Com o WPF novos recursos foram criados, de tal forma que eles poderiam ser utilizados para facilitar a separação de código. Assim surgiu o padrão Model-View-ViewModel ou simplesmente MVVM, que nada mais é do que um padrão de separação de interface que faz uso dos recursos do WPF e mais recentemente do Silverlight. Nesta edição, você conhecerá cada um destes padrões, bem como construir um exemplo prático utilizando o Delphi, na matéria do Fabrício Kawata.
Lista completa de artigos da edição:
Efeitos Gráficos
Melhorando a aparência das aplicações com Delphi
Jederson Zuchi
Criando uma deskbar
Aplique POO e refatoração
Vitor Luiz Rubio
Os padrões de arquitetura MVC, MVP e MVVM
Fabrício Hissao Kawata
VÍDEO – “Veja nesta vídeo aula como utilizar o padrão MVP com ASP.NET no Delphi Prism”
Guinther Pauli
Padrões de Projeto - Façade e Strategy
Renato Jose Groffe
POO - Dominando o uso de Interfaces
Vitor Luiz Rubio
VÍDEO – “Veja nesta vídeo aula como simular herança múltipla em Delphi usando o recurso avançado de implementação de interfaces por delegação”
Guinther Pauli
Clique aqui para acessar a versão digital