Essas são as quatro situações mais comuns em que o padrão Proxy é aplicável:
Um proxy virtual é um placeholder para objetos "caros de se criar". O objetivo real é apenas criado quando um cliente primeiramente requere/acessa o objeto.
Um proxy remoto provê um representativo local para um objeto que reside em um espaço de endereço diferente. Isso é o que "stub" código em RPC e CORBA provê.
Um proxy protetor controla o acesso a um objeto mestre sensível. O objeto "substituto" verifica se o "caller" tem as permissões requisitadas para o redirecionamento da requisição.
Um proxy inteligente interpõe ações adicionais quando um objeto é acessado. Usos típicos incluem:
Contar o número de referências ao objeto real para que seja libertado automaticamente assim que não houver mais referências.
Carregar um objeto persistente na memória quando for referenciado pela primeira vez.
Verificar se o objeto real está travado antes de ser acessado para assegurar que nenhum outro objeto possa mudá-lo.