Você está na página 1de 15

Design Patterns: Proxy

Projeto de Sistemas de Software (PSS)


Paulo da Silva Silveira (pauloss1@gmail.com) Paulo Roberto Frana (paulofranca8@gmail.com)

Processos de Sistema de Software

Proxy
O Padro Proxy (Surrogate) um padro estrutural. Classificao do Gof.

Processos de Sistema de Software

Propsito

Disponibiliza um representante (objeto) para outro objeto visando o controle de acesso a este.

Processos de Sistema de Software

Motivao
Adiar ao mximo o custo da criao de um objeto pesado (lazyload) Disponibilizar um acesso local para um objeto remoto Proteger o objeto original

Processos de Sistema de Software

Aplicabilidade

til quando se precisa de uma referencia mais verstil/sofisticada que um ponteiro normal para um objeto.

Processos de Sistema de Software

Aplicabilidade

Situacoes de uso
Embaixador : representa um objeto em outro espao de endereamento Virtual Proxy: cria objetos caros on demand Protection Proxy : quando o objeto deve ter diferentes direitos de acesso Smart Reference: executa aes adicionais no acesso (contagem de refs, carregamento de objs, bloqueios)

Processos de Sistema de Software

Estrutura

Participantes:
Client, Subjetc, Proxy, RealSubject

Processos de Sistema de Software

Colaboraes

O proxy invoca o objeto real somente quando invocado.

Processos de Sistema de Software

Consequncias
Adiciona um nvel de referencia indireta para o acesso ao objeto Oculta o fato do objeto no ser local Executa otimizaes

Criao sob demanda

Processos de Sistema de Software

Exemplo

Protection Proxy

Processos de Sistema de Software

10

Exemplo

Processos de Sistema de Software

11

Exemplo

Processos de Sistema de Software

12

Diagrama de classes

Processos de Sistema de Software

13

Diagrama. de sequencia

Processos de Sistema de Software

14

Padres Relacionados

Adapter
Possibilita conversa entre objetos com interfaces no compatveis

Decorator
Acrescenta responsabilidades a um objeto Implementacao semelhante

Processos de Sistema de Software

15

Você também pode gostar