Discussão correta:
O modo de comando encapsula uma solicitação ou operação em um objeto. O sistema de tempo de execução do modo de comando usa solicitações diferentes para parametrizar o cliente, solicitações de fila ou registros de registro e pode fornecer funções de revogação e recuperação de comando.
popular:
Na verdade, é fácil de entender. Modo de comando, o que você se importa são comandos (ou operações). Vamos dar um exemplo. Em uma empresa, toda a operação é como um sistema. Um chefe emitiu um pedido, e o líder de nível médio recebeu o pedido e depois o designou ao funcionário específico responsável. Todo o processo é claro. Há um requisito, como corrigir esse processo e formar um sistema. Só precisamos entender o ponto -chave: Ordem. Extrai -lo e tudo será resolvido. Extraia os comandos e os encapsule em um objeto independente para alcançar a dissociação. Quanto aos outros, pode ser facilmente expandido, se esse comando foi proposto pelo CEO, pelo Departamento de Recursos Humanos ou pelo seu pai. Independentemente de o executor desta ordem ser Zhang San ou Turtle. O surgimento desse modelo é na verdade um filosófico "compreendendo a principal contradição". Mais exemplos, como os outros escritores, citaram "qual é a diferença entre ir à beira da estrada e ir a um restaurante de churrasco para comer churrasco" ou "o rei dos macacos faz uma grande confusão sobre o imperador de jade no palácio celestial para capturar macacos com Taibai Vênus".
O modo de comando Java é essencialmente um encapsulamento de comandos, que separa a responsabilidade de emitir comandos e delega -os a diferentes objetos. Nos termos do leigo, eu sou o chefe, então eu apenas envio um pedido. Quanto a quem enviar esse pedido e quem o executar, depende de mim. Não envio dinheiro para contratar alguém para causar problemas por mim mesmo. Você é o funcionário encarregado das coisas, e seu dever é executar as tarefas atribuídas por seus superiores. Seja realista, não saiba muito, não fofoca, não pergunte muito.
concluir:
Vamos dar uma olhada no diagrama da aula primeiro:
Com base nisso, olhamos para o código de exemplo:
interface pública ICommand {void Execute (); } classe pública ConcreteCommand implementa ICommand {receptor privado receptor; Public concreteCommand (receptor receptor) {this.receiver = receptor; } @Override public void Execute () {this.receiver.action (); }} public class Receiver {public void Action () {System.out.println ("Receptor Faça algo"); }} public class Invocer {private ICommand Command; public Invocer (comando ICommand) {this.Command = Command; } public void Invoke () {this.Command.execute (); }} public class Test {public static void main (string [] args) {receptor receptor = new Receiver (); // O Real Executor ICommand Command = new ConcreteCommand (receptor); // o comando usado para isolamento invasker Invoker = new Invoker (comando); // o chamador invocador.inVoke (); }}
vantagem:
deficiência:
Pode haver muitas classes de comando específicas.