Nome e Classificação do Padrão
Proxy
– Padrão Estrutural
Intenção e objetivo
Possui
o objetivo de substituir outro objeto para controlar seu acesso, é basicamente uma
classe que funciona como uma interface para outra classe podendo se
conectar à qualquer coisa à um arquivo, conexão de rede e etc...
Motivação
Há
situações em que o cliente não faz, ou não pode fazer referencia a um objeto
diretamente, mas quer ainda interagir com o mesmo.
Um objeto proxy pode agir como intermediário
entre o cliente e o objeto no qual ele deseja interagir.
“Serve como uma pessoa autorizada a interagir
pela outra”.
Aplicabilidade
Proxies
são úteis sempre que há uma necessidade de referenciar de forma mais
sofisticada um objeto fornecendo mais consistência do que um simples ponteiro
ou uma referência simples pode fornecer.
Remote proxy:
representante local para um objeto remoto;
Virtual proxy: cria objetos sob demanda, somente criará esse objetos quando precisar;
Estrutura
Participantes
O objeto MusicaProxy e o objeto real (MusicaReal) implementam a mesma interface, neste caso chamada de Musica O Proxy encapsula o acesso ao objeto real.
Colaborações
Subject
Interface
Proxy
Implementa a mesma interface do Real Subject O Proxy encapsula o acesso ao RealSubject.
Real Subject
Implementa a mesma interface do Proxy
Subject
Interface
Proxy
Implementa a mesma interface do Real Subject O Proxy encapsula o acesso ao RealSubject.
Real Subject
Implementa a mesma interface do Proxy
Consequência
Um proxy remoto pode
ocultar o fato de que um objeto reside em um
espaço de endereçamento diferente;
Um proxy
virtual pode implementar otimizações,
como criação de um objeto
sob demanda;
Implementação
Processo de um MP3 Player via Web.
A classe principal executa o método
play() na classe MusicaProxy que verifica se a música já foi baixada se sim ele executa
o método play() na Classe MúsicaReal e toca a música. O construtor do Objeto
MusicaReal carrega a música antes de toca-lá.
Exemplos de Código
Link do projeto com o padrão Proxy
Usos Conhecidos
O Proxy É muito utilizado pela
tecnologia J2EE, pelo objeto ‘javax.ejb.EJBObject’, que representa uma referência remota ao EJB.
O Framework Hibernate também utiliza Proxy em uma técnica utilizada para acessar o banco de dados somente quando for necessário.
O Framework Hibernate também utiliza Proxy em uma técnica utilizada para acessar o banco de dados somente quando for necessário.
Padrões relacionados
Adapter
Decorator
Decorator

Nenhum comentário:
Postar um comentário