Modelli di progettazione Python - Comando

Il modello di comando aggiunge un livello di astrazione tra le azioni e include un oggetto che richiama queste azioni.

In questo modello di progettazione, il client crea un oggetto comando che include un elenco di comandi da eseguire. L'oggetto comando creato implementa un'interfaccia specifica.

Di seguito è riportata l'architettura di base del modello di comando:

Come implementare il modello di comando?

Vedremo ora come implementare il design pattern.

def demo(a,b,c):
   print 'a:',a
   print 'b:',b
   print 'c:',c

class Command:
   def __init__(self, cmd, *args):
      self._cmd=cmd
      self._args=args

   def __call__(self, *args):
      return apply(self._cmd, self._args+args)
cmd = Command(dir,__builtins__)
print cmd()

cmd = Command(demo,1,2)
cmd(3)

Produzione

Il programma di cui sopra genera il seguente output:

Spiegazione

L'output implementa tutti i comandi e le parole chiave elencati nel linguaggio Python. Stampa i valori necessari delle variabili.