2013-10-24 11 views

risposta

9

Essi bascially tutta la messaggistica uso, e la loro differenza è principalmente semantica:

  • evento aggregatore: invia un messaggio quando succede qualcosa. Codice da qualche altra parte potrebbe essere in ascolto per quel messaggio, ma forse non
  • richiesta/risposta: hanno il codice inviare una richiesta, e si aspettano una risposta (ad esempio, mi mandi i dati rinfrescati)
  • comandi: il codice in un posto comandi codice da qualche altra parte per eseguire un'azione. Di solito non c'è un valore di ritorno.
7

Vorrei aggiungere a David Sulc answer.

La richiesta/risposta è molto diversa dall'aggregatore di eventi e dai comandi. Viene utilizzato per i casi in cui una parte del codice richiede qualcosa da un'altra parte del codice. Una risposta sarebbe sempre prevista. Ora vediamo come l'aggregatore di eventi e i comandi sono diversi.

Marionette Event Aggregator consente di implementare il comportamento di pubblicazione-sottoscrizione. Usando il metodo 'on' puoi sottoscrivere un evento e associare un evento a qualsiasi oggetto. Non è possibile implementare questo comportamento di associazione utilizzando i comandi. Inoltre è possibile avere più oggetti che ascoltano qualsiasi evento particolare. Ci può anche essere un caso in cui nessun oggetto è legato o in ascolto di alcun evento.

I comandi sono specificatamente pensati per eseguire alcune azioni in qualche altra parte del codice. Ci può essere solo un gestore per un particolare comando, a differenza degli eventi in cui è possibile avere più listener.

Quindi, per riassumere, i casi d'uso per ciascuna sarebbero:

1) richiesta/risposta: Quando avete bisogno di qualche risposta da un'altra parte del codice.

2) evento Aggregator: Quando si desidera associare oggetti a eventi

3) Comandi: si desidera solo qualche altra parte del codice per eseguire un compito.