Upload
internet
View
102
Download
0
Embed Size (px)
Citation preview
Padrão Proxy
Projeto de Sistemas de Software(PSS)Marcio D. M. Santos
Baldoino F. dos S. Neto
Propósito
• Prover um representante para um objeto real que controla tal objeto. Desta forma, não arcando com as conseqüências de controlar o objeto real diretamente.
© LES/PUC-Rio
© LES/PUC-Rio
Motivação
• Custo elevado em criar ou instanciar um tipo de objeto.
• Controle de acesso.
• Exemplo– Carregamento de grandes imagens
Aplicabilidade
• É aplicável quando necessitamos de uma referência mais sofisticada para um objeto, ou seja, precisamos de algo mais do que um simples ponteiro.
© LES/PUC-Rio
Aplicabilidade
• Remote proxy (RMI e CORBA)
• Referência esperta (lazyload(hibernate,jpa))
• Virtual proxy(imagem em documentos)
• Protection Proxy(acesso restrito)
© LES/PUC-Rio
Estrutura
© LES/PUC-Rio
Participantes
• Proxy– Mantém uma referência que permite o acesso ao
objeto real.– Possui uma interface idêntica ao Subject.– Controla o acesso ao objeto real.
• Subject– Define uma comum interface para RealSubject e
Proxy.
• RealSubject– Define o objeto real que o proxy representa.
© LES/PUC-Rio
Colaborações
© LES/PUC-Rio
•O proxy invoca o objeto real somente quando é invocado.
Conseqüências
• Adiciona um nível de indireção– Permite que o objeto resida em um outro
servidor– Permite que o objeto seja carregado da base
somente quando necessário
• Esconde a forma de acesso podendo causar erros não previstos na API do objeto.
© LES/PUC-Rio
Exemplo
Exemplo
Exemplo
Exemplo
Exemplo
Exemplo
© LES/PUC-Rio
Exemplo
Exemplo
Exemplo
FIM!!