O melhor tutorial Modo de comando em 2024. Neste tutorial você pode aprender introdução,realização,
Modo de Comando (Padrão de comando) é um padrão de design orientado a dados, ele pertence ao tipo de modelo. comando de solicitação na forma de pacotes no objeto, e passado para o objeto de chamada. Olhando objeto chamada pode processar o objeto de comando apropriado e o comando é passado para o objeto apropriado, que executa o comando.
Intenção: Encapsular um pedido como um objeto, assim você pode usar diferentes pedidos de parametrizar clientes.
Principalmente para resolver: no sistema de software, o comportamento do solicitante e comportamento geralmente conseguir uma relação de fortemente acoplados, mas algumas situações, tais como a necessidade de realizar a gravação, anular ou refazer, e outra de processamento de transações, este irresistível intimamente ligado alterações de design não é apropriado.
Quando usar: Em alguns casos, como ao comportamento de um "registro, undo / redo, transações" e outros tratamentos, tais mudanças não pode resistir à forte ligação é inadequada.Neste caso, como é que a "conduta solicitante" e "implementador comportamento" dissociação? Age como um conjunto de objetos abstratos, acoplamento pode ser alcançado entre os dois.
Como corrigir: Executar pelo destinatário para ligar para o chamador, em ordem: o receptor de chamadas → → Comando.
O código de chave: a definição de três papéis: 1, recebeu o objeto de comando verdadeira execução 2, Command 3, objetos solicitante usando a entrada de comando
Exemplos de aplicação: struts 1 núcleo ActionServlet controlador em ação é apenas um, o equivalente a Invoker, enquanto a camada de modelo de classe será tão diferentes aplicações têm diferentes classes de modelo, o equivalente a Command concreto.
Vantagens: 1, o sistema reduz o grau de acoplamento.2, novos comandos podem ser facilmente adicionadas ao sistema.
Desvantagens: modo de comando pode fazer com que alguns sistemas têm muitos classe de comando específico.
cenário de uso: que ocomando local pode usar o modo de comando, tais como: 1, GUI cada botão é um comando. 2, simulado CMD.
Nota: O sistema precisa suportar desfazer de comando (Undo) e operação operação de recuperação (Redo), você pode considerar o uso do modo de comando, consulte o modo de comando estendido.
Nós primeiro criado como uma interface de comandopara ordeme, em seguida, criar uma solicitaçãodaclasse. Entidade e comando aulasBuyStockSellStock,Ordemimplementa a interface, ele irá executar o processamento comando real. Criado como oBrokerclasse chamada deobjeto,que pode aceitar encomendas e encomendas.
objetoBrokerusando o modo de comando, com base no tipo de comando para determinar qual objeto para executar os comandos que.CommandPatternDemo,nossas aulas de demonstração utilizando classeBrokerpara demonstrar o modo de comando.
Criar uma interface de comando.
Order.java
Ordem interface pública { vazio execute (); }
Crie uma classe pedido.
Stock.java
classe pública da { private String nome = "ABC"; quantidade private int = 10; buy public void () { System.out.println ( "da [nome:" + Nome + ", Quantidade: "+ quantidade +"] comprado "); } sell public void () { System.out.println ( "da [nome:" + Nome + ", Quantidade: "+ quantidade +"] vendido "); } }
Criar classe de entidadeOrderimplementa a interface.
BuyStock.java
classe pública BuyStock implementa Order { privada da abcStock; pública BuyStock (da abcStock) { this.abcStock = abcStock; } public void execute () { abcStock.buy (); } }
SellStock.java
classe pública SellStock implementa Order { privada da abcStock; SellStock público (da abcStock) { this.abcStock = abcStock; } public void execute () { abcStock.sell (); } }
Criar chamadas de comando da classe.
Broker.java
importação java.util.ArrayList; import java.util.List; Broker classe pública { Lista privada <Order> OrderList = new ArrayList <Order> (); public void takeOrder (ordem Ordem) { orderList.add (ordem); } placeOrders public void () { for (ordem Ordem: OrderList) { order.execute (); } orderList.clear (); } }
Use classe Broker para aceitar e executar comandos.
CommandPatternDemo.java
CommandPatternDemo classe pública { main (String [] args) public static void { Da abcStock = new estoque (); BuyStock buyStockOrder = new BuyStock (abcStock); SellStock sellStockOrder = new SellStock (abcStock); Broker corretor = new Broker (); broker.takeOrder (buyStockOrder); broker.takeOrder (sellStockOrder); broker.placeOrders (); } }
Verifique saída.
Da [Nome: ABC, Quantidade: 10] comprado Da [Nome: ABC, Quantidade: 10] vendidos