padrão proxy projeto de sistemas de software(pss) marcio d. m. santos baldoino f. dos s. neto
TRANSCRIPT
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!!