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

Post on 18-Apr-2015

102 views 0 download

Transcript of 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

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