Callback annidati: best practice per dare accesso?

0

Un po 'di sfondo prima:

Sto creando un set di servizi Bluetooth Low Energy (BLEDiscoverer, BLEConnector, BLECommunicator) Sto cercando di seguire il principio SOLID, quindi sto mettendo ogni classe a capo di un aspetto dell'interazione BLE.

BLEDiscoverer si spegne e trova i dispositivi BLE e dà accesso a un elenco di tutti i dispositivi trovati fino a quel momento. Supporta un callback per informare un osservatore quando viene trovato un nuovo dispositivo.

SO.

Quello che voglio fare è avere una classe BLEManager il cui unico scopo è quello di orchestrare gli altri servizi, quindi ho un modo semplice per trovare, connettermi e inviare / ricevere informazioni via bluetooth. Il suo compito sarebbe quello di sedersi tra il client e il dispositivo bluetooth e facilitare la comunicazione.

Ho citato un BLEDiscoverer, che trova i dispositivi BLE e te ne parlerà se ti registri con esso.

Supponiamo di avere una visione che voglio elencare ogni nuovo dispositivo come viene scoperto. La vista sarebbe un client di BLEManager allora sì?

In che modo BLEManager dovrebbe notificare al client la visualizzazione dei nuovi dispositivi?

Penso che sia semplice: BLEManager registra un callback con BLEDiscoverer. BLEManager offre al cliente la possibilità di registrare una richiamata per quando vengono scoperti nuovi dispositivi.

BLEManager chiama quindi la propria richiamata ogni volta che BLEDiscoverer chiama la richiamata.

Dispositivo trovato - > Callback di Discoverers - > Callback manager - > Visualizzazione client notificata.

Questa è una buona pratica oppure esiste un modo migliore per Manager di mediare tra il client e il servizio di scoperta?

    
posta Magic Marbles 14.07.2016 - 02:11
fonte

0 risposte

Leggi altre domande sui tag