O modo de comando é o padrão mais confuso. em sua programação real. O modo de comando não é realmente um modelo muito específico, e é precisamente essa flexibilidade que faz as pessoas se sentirem um pouco confusas.
Definição de comando
Muitos códigos de modo de comando são direcionados para a interface gráfica.
Encapsular esses comandos em uma classe e, em seguida, o usuário (o chamador) opera nesta classe. .
Obviamente, o benefício de fazer isso é que ele está em conformidade com as características da embalagem e reduz o comando de acoplamento.
No modo de comando, também descobri que um "problema comum" do modo de design: pareço complicar problemas simples e adicionar terceiros a diferentes classes. reutilização do código.
Como usar o modo de comando
Os códigos de modo de comando específicos são vários, porque existem diferentes maneiras de encapsular comandos, sistemas diferentes. O exemplo a seguir é para encapsular um comando em uma lista de coleta. Depois que qualquer objeto é adicionado à lista, ele é realmente carregado em uma caixa preta fechada.
Um modo de comando típico requer uma interface. Existe um método unificado na interface, que é "encapsular comandos/solicitações em objetos":
A cópia do código é a seguinte:
Comando de interface pública {
Execute do vazio resumo público ();
}
Os códigos de comando/solicitação específicos são para implementar o comando interface e existem três comandos específicos abaixo:
A cópia do código é a seguinte:
Public Class Engineer implementa comando {
public void Execute () {
// Faça o comando do engenheiro
}
}
Public classe Programador implementa o comando {
public void Execute () {
// Faça o comando do programador
}
}
Public classe Politician implemment comando {
public void Execute () {
// faz o comando do político
}
}
Como sempre, podemos chamar esses três comandos diretamente, mas usando o modo de comando, temos que encapsulá -los e jogá -los na lista de caixas pretas:
A cópia do código é a seguinte:
Public Class Producer {
Public Static List ProductionErequests () {
Lista fila = new ArrayList ();
fileue.add (new domesticEngineer ());
fila.add (novo político ());
fileue.add (novo programador ());
retornar a fila;
}
}
Depois que esses três comandos entram na lista, eles perderam suas características de aparência.
A cópia do código é a seguinte:
classe pública TestCommand {
public static void main (string [] args) {
Lista na fila = produtor.producerequests ();
para (iterator it = Queue.iterator (); it.hasnext (););
// Retire os recursos do meio e outros da lista e você não pode determinar.
// Eles são pelo menos o "filho" do comando interface.
((Comando) it.Next ()). Execute ();
}
}
Pode-se observar que o chamador basicamente lida apenas com a interface e não interage com a implementação específica. Não é necessário modificar o código no chamador TestCommand.
Depois de entender o princípio principal do código acima, todos devem ter seus próprios métodos em uso, especialmente em como separar o chamador e os comandos específicos, existem muitos métodos de implementação. . Essa abordagem é apenas para demonstração.
Um bom motivo para usar o modo de comando também é porque ele pode implementar a funcionalidade de desfazer, e cada comando específico pode lembrar a ação que acabou de executar e restaurá -la, se necessário.
O modo de comando é amplamente usado no design da interface. Os comandos do menu no modo de comando Java Swing.