Domanda

Cos'è l'Action Design Pattern, non ne ho mai sentito parlare prima?Sospetto che sia lo stesso di Modello di progettazione dei comandi [wikipedia] ma non riesco a trovare alcuna risorsa al riguardo.

È stato utile?

Soluzione

Hai ragione, modello di azione == modello di comando. Si sente chiamato il modello di azione più spesso in progettazione grafica, nella forma "su qualche tasto premuto, eseguire questa azione". Nel codice del tasto sarebbe stato cablato con un oggetto un'azione di qualche tipo.

Altri suggerimenti

Sto leggendo "Il pattern Azione/Esecutore" su MSDN in questo momento e non sono d'accordo con la premessa secondo cui i modelli Comando e Azione/Esecutore sono gli stessi.

Dalla descrizione del Modello di comando su SourceMaking.com:

  • Incapsula una richiesta come oggetto, consentendoti così di parametrizzare client con richieste diverse, accodare o registrare richieste e supportare operazioni annullabili.
  • Promuove l'"invocazione di un metodo su un oggetto" allo stato di oggetto completo
  • Un callback orientato agli oggetti

Dall'articolo MSDN sul pattern Azione/Esecutore:

Il modello Azione/Esecutore identifica una strategia per mappare i casi d'uso nel codice, consentendo una migliore visibilità e agilità.Inoltre, affronta i problemi legati alla contaminazione delle entità e al mancato utilizzo corretto delle transazioni.

La differenza sembra essere che un'"azione" incapsula uno o più passaggi che, se eseguiti con successo, delegano il controllo a un altro oggetto responsabile di sapere come rendere persistenti tali modifiche a un database, un servizio Web o un archivio di file.L'azione è disaccoppiata dal modo in cui viene eseguita/persistente.

Un "comando" sembra la metà dello schema Azione/Esecutore: l'"azione" sembra sinonimo di "comando".Il modello Azione/Esecutore fa un ulteriore passo avanti e descrive un'altra preoccupazione la cui responsabilità è prendere i cambiamenti generati dall'"azione" o dal "comando" e salvarli da qualche parte.

design pattern d'azione è lo stesso come modello di progettazione dei comandi. Azione è un'entità chiave, che incapsula le informazioni con sé per quanto riguarda ciò che è il suo comportamento, quello di trasformazione deve essere fatto sul suo metodo do (), come può essere annullata, e così via. Quando un'applicazione o uno dei suoi componenti è stato progettato in conformità con il modello di progettazione d'azione, quindi l'attività Tutto l'applicazione può essere rappresentata nella forma di azione, ogni cosa può essere rifatta / annullate più volte. Per esempio. Macro in Excel, Undo / redo in text-editor, ecc.

classe Azione, che è un blocco di costruzione in questo modello di progettazione può essere progettato come di seguito: -

public interface Action{
  public void do();
  public void undo();
  public void do(int iNoOfTimes);
}

public class FileCopyAction implements Action{
  private int iActionId;
  public void do(){}
  public void undo(){}
  public void do(int iNoOfItems){}
}

Speranza che aiuta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top