Onde ele ajuda
Um serviço pode carregar uma imagem grande somente quando necessária, validar permissões antes de uma chamada ou encaminhar uma operação remota. O cliente conversa com uma abstração, enquanto o proxy aplica a política de acesso.
Exemplo em C#
public interface IDocumento { string Ler(); }
public sealed class DocumentoProtegido(
Func<IDocumento> criar, IUsuario usuario) : IDocumento
{
public string Ler()
{
if (!usuario.PodeLer) throw new UnauthorizedAccessException();
return criar().Ler();
}
}A interface compartilhada mantém o cliente independente da proteção; a autorização ainda deve ser aplicada no servidor onde a fronteira de segurança exige.
Proxy, Decorator e Adapter
Proxy controla acesso, Decorator acrescenta responsabilidades e Adapter traduz contratos diferentes. Na prática podem se parecer estruturalmente, mas o propósito orienta o desenho. Evite esconder latência, falhas remotas ou políticas relevantes. Mais: Decorator, Adapter e catálogo GoF.