Command

Descrição:

A intenção deste padrão é encapsular uma solicitação como um objeto, desta forma permitindo parametrizar clientes com diferentes solicitações, enfileirar ou fazer o registro de solicitações e suportar operações que podem ser desfeitas.

Descrição da UML:

  • Command :
  • ConcreteCommand :
  • Client :
  • Invoker :
  • Receiver :
  • Diagrama de Classes genérico do padrão:

    Exemplo:

    O exemplo exposto no livro, que contém a interface de programação de aplicativo para o Controle Remoto para Automção Doméstica. O objetivo central no projeto foi manter o código o mais simples possível para que não fosse necessário introduzir alterações quando novas classes fossem produzidas pelos fornecedores. Para essa finalidade, foi empregado o Padrão Command para desconcectar logicamente a classe RemoteControl das classes de vendedor. Acredita-se que isto irá reduzir o custo da produção do controle remoto, além de diminuir drasticamente seus custos permanentes de manutenção.

    Diagrama de Classes do exemplo:

    Command

    Ver código fonte no Github