Differenza tra Signal / Slot e DataBusPattern

1

Sto solo cercando di capire cosa rende Signal / Slot (Pattern?). Wikipedia non mi dice molto e la chiama implementazione di ObserverPattern *, mentre penserei che abbia molta più somiglianza con DataBusPattern **.

Qualcuno può spiegare in modo astratto cosa è Signal / Slot? I partecipanti a Signal / Slot devono conoscersi (come in ObserverPattern) o meno (come in DataBusPattern) e quali sono le differenze chiave?

Ho provato a capirlo leggendo i documenti QT, ma c'è molta magia in C ++.

*) link

**) link

    
posta Scheintod 12.12.2014 - 17:12
fonte

1 risposta

2

Le informazioni di connessione tra un segnale e uno slot sono completamente tenute tra gli oggetti mittente e destinatario connessi. Vedi qui per ulteriori informazioni. Un'operazione connect viene sempre assegnata tra due istanze concrete e il programmatore deve conoscere entrambe. Uno sta facendo la pubblicazione, uno sta facendo l'iscrizione. Puoi connettere molti segnali a uno slot e molti slot a un segnale, ma ogni connessione viene effettuata individualmente.

In un modello di bus dati, non si effettuano connessioni individuali. Trasmetti semplicemente i tuoi eventi sul bus e ogni ricevitore sull'autobus riceve ogni singolo evento. Possono scegliere di non fare nulla con determinati eventi, ma non possono scegliere di non riceverli affatto.

    
risposta data 12.12.2014 - 17:46
fonte

Leggi altre domande sui tag