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

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

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!!