O MVP é um padrão para a construção de aplicações que interagem com o usuários (User Interface) que tem dois objetivos principais: Separar as responsabilidades na camada de apresentação, ou seja, o que é da tela e o que é da lógica de negócio do aplicativo. Facilitar os testes, permitindo que os mesmos sejam automatizados. O pattern MVP pode ser separado em duas categorias: Passive View e Supervising Controller . A diferença entre os dois é o grau de testabilidade que cada um provê. Hoje iremos ver alguns detalhes da primeira categoria, com foco na questão de separação de responsabilidades. A idéia aqui é separarmos o que o que é da apresentação e o que é da lógica de acesso aos objetos do domínio de negócios. O diagrama acima mostra como temos essa separação entre as classes que compõe a estrutura básica do MVP Passive View. Do lado da camada de apresentação, temos a classe View, que no final das contas será uma tela WPF ou uma página ASP.NET. Do lad