padrão proxy projeto de sistemas de software(pss) marcio d. m. santos baldoino f. dos s. neto
TRANSCRIPT
![Page 1: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc131497959413d8d5eef/html5/thumbnails/1.jpg)
Padrão Proxy
Projeto de Sistemas de Software(PSS)Marcio D. M. Santos
Baldoino F. dos S. Neto
![Page 2: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc131497959413d8d5eef/html5/thumbnails/2.jpg)
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
![Page 3: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc131497959413d8d5eef/html5/thumbnails/3.jpg)
© LES/PUC-Rio
Motivação
• Custo elevado em criar ou instanciar um tipo de objeto.
• Controle de acesso.
• Exemplo– Carregamento de grandes imagens
![Page 4: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc131497959413d8d5eef/html5/thumbnails/4.jpg)
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
![Page 5: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc131497959413d8d5eef/html5/thumbnails/5.jpg)
Aplicabilidade
• Remote proxy (RMI e CORBA)
• Referência esperta (lazyload(hibernate,jpa))
• Virtual proxy(imagem em documentos)
• Protection Proxy(acesso restrito)
© LES/PUC-Rio
![Page 6: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc131497959413d8d5eef/html5/thumbnails/6.jpg)
Estrutura
© LES/PUC-Rio
![Page 7: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc131497959413d8d5eef/html5/thumbnails/7.jpg)
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
![Page 8: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc131497959413d8d5eef/html5/thumbnails/8.jpg)
Colaborações
© LES/PUC-Rio
•O proxy invoca o objeto real somente quando é invocado.
![Page 9: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc131497959413d8d5eef/html5/thumbnails/9.jpg)
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
![Page 10: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc131497959413d8d5eef/html5/thumbnails/10.jpg)
Exemplo
![Page 11: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc131497959413d8d5eef/html5/thumbnails/11.jpg)
Exemplo
![Page 12: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc131497959413d8d5eef/html5/thumbnails/12.jpg)
Exemplo
![Page 13: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc131497959413d8d5eef/html5/thumbnails/13.jpg)
Exemplo
![Page 14: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc131497959413d8d5eef/html5/thumbnails/14.jpg)
Exemplo
![Page 15: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc131497959413d8d5eef/html5/thumbnails/15.jpg)
Exemplo
© LES/PUC-Rio
![Page 16: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc131497959413d8d5eef/html5/thumbnails/16.jpg)
Exemplo
![Page 17: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc131497959413d8d5eef/html5/thumbnails/17.jpg)
Exemplo
![Page 18: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc131497959413d8d5eef/html5/thumbnails/18.jpg)
Exemplo
![Page 19: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto](https://reader036.vdocuments.pub/reader036/viewer/2022081602/552fc131497959413d8d5eef/html5/thumbnails/19.jpg)
FIM!!