padrão proxy projeto de sistemas de software(pss) marcio d. m. santos baldoino f. dos s. neto

19
Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto

Upload: internet

Post on 18-Apr-2015

102 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto

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

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

© 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

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

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

Estrutura

© LES/PUC-Rio

Page 7: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto

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

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

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

Exemplo

Page 11: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto

Exemplo

Page 12: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto

Exemplo

Page 13: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto

Exemplo

Page 14: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto

Exemplo

Page 15: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto

Exemplo

© LES/PUC-Rio

Page 16: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto

Exemplo

Page 17: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto

Exemplo

Page 18: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto

Exemplo

Page 19: Padrão Proxy Projeto de Sistemas de Software(PSS) Marcio D. M. Santos Baldoino F. dos S. Neto

FIM!!