Proxy
Engenharia de Software
André Moura
Filipe Negri
Luiz Almeida
Objetivos:
Mostrar como é, como funciona e eventuais vantagens e desvantagens do padrão de projeto proxy.
Introdução
Um proxy, é uma classe que funciona como uma interface para outra classe. A classe proxy poderia conectar-se a qualquer coisa: uma conexão de rede, um objeto grande em memória, um arquivo, ou algum recurso que é difícil ou impossível de ser duplicado. Exemplo
O exemplo a seguir ilustra o padrão Java de "proxy virtual". A classe ProxyImage é usada para acessar um método remoto.
O primeiro exemplo cria uma interface em relação ao qual o padrão criam as classes. Essa interface contém apenas um método para exibir a imagem, chamado displayImage(), que tem de ser codificado por todas as classes de aplicação.
A informação da imagem é acessada a partir do disco. Usando o padrão de proxy, o código do ProxyImage evita carregamento múltiplo da imagem, acessando a partir do outro sistema poupando memória.
Exemplo
UML
Aplicações
Aplicações
Sempre que haja a necessidade de uma referência a um objeto mais versátil e sofisticada do que um simples ponteiro:
1. Um proxy remoto provê um representante local para um objeto em um espaço de endereçamento diferente.
2. Um proxy virtual cria objetos “caros” sob demanda.
Aplicações
3. Um proxy de proteção controle o acesso ao objeto original
- Útil quando objetos devem ter direitos de acesso diferentes.
4. Uma referencia esperta é um substituto para um ponteiro que realiza ações adicionais quando um objeto é acessado, ex:
- Para contar o número de referências ao objeto real com o propósito de garbage collection (ponteiro esperto).
Proxy - Padrão de Projeto
O padrão Proxy tem como objetivo proporcionar um espaço reservado para outro objeto controlar o acesso a ele. A classe proxy teoricamente pode se conectar a qualquer objeto, ou seja, normalmente quando existe uma instância