Padrões de Projetos
Command e Proxy
Por: Danilo Pinotti
Command
Padrão Command
- Padrão Comportamental
- Transforma uma chamada de execução em um objeto
- Essa conversão permite:
- Execução adiada ou em background
- Logs dessas chamadas
- etc
Padrão Command
Padrão Command
Padrão
Command
Padrão
Command
Padrão
Command
Padrão
Command
Padrão Command
Prós
- Princípio da Responsabilidade Única (SRP)
- Princípio Aberto/Fechado (OCP)
- Pode implementar o ‘execute’ e o ‘undo’
- Pode implementar a execução adiada (background por
exemplo)
- Pode executar rotinas complexas através de vários comandos
simples
Padrão Command
Contras
- Pode causar aumento de complexidade por conta de estar
introduzindo uma camada a mais na aplicação
Padrão Command
- Utilize o padrão Command quando você quer parametrizar
objetos com operações.
- Utilize o padrão Command quando você quer colocar
operações em fila, agendar sua execução, ou executá-las
remotamente.
- Utilize o padrão Command quando você quer implementar
operações reversíveis
Proxy
Padrão Proxy
- Padrão Estrutural
- Controla e intermedia o acesso ao objeto original
Padrão Proxy
Padrão Proxy
Padrão
Proxy
Padrão
Proxy
Padrão
Proxy
Padrão Proxy
Prós
- Você pode controlar o objeto do serviço sem os clientes
ficarem sabendo;
- Você pode gerenciar o ciclo de vida de um objeto do serviço
quando os clientes não se importam mais com ele;
- Princípio Aberto/Fechado (OCP). Você pode introduzir novos
proxies sem mudar o serviço ou clientes.
Padrão Proxy
Contras
- Pode causar aumento de complexidade por conta de estar
introduzindo uma camada a mais na aplicação;
- A resposta de um serviço pode ter atrasos.
Referências
- Command. Disponível em:
<https://refactoring.guru/pt-br/design-patterns/command>.
- Proxy. Disponível em:
<https://refactoring.guru/pt-br/design-patterns/proxy>.
- Command em Java / Padrões de Projeto. Disponível em:
<https://refactoring.guru/pt-br/design-patterns/command/ja
va/example>. Acesso em: 2 maio. 2024.
- Padrão de Projeto Command em Java. Disponível em:
<https://www.devmedia.com.br/padrao-de-projeto-comman
d-em-java/26456>.
Dúvidas?
Obrigado!
contato@danilopinotti.com.br
danilopinotti.com.br
github.com/danilopinotti

Padrões de Projeto: Proxy e Command com exemplo