Decidere se un oggetto dovrebbe richiedere dati (chiamando una funzione) o ricevere dati (avendo una funzione chiamata da un altro oggetto) dipende probabilmente dalla situazione esatta. Quindi, come faccio a decidere come gestirlo?
Se un esempio specifico può aiutare:
Attualmente sto progettando un'applicazione utilizzando la videocamera Kinect. Voglio dividere il segnale e passarlo a più oggetti che elaborano i dati (c'è un po 'di contabilità, perché ho bisogno di disporre un frame prima di richiedere quello successivo). Cosa dovrei fare? Ottieni dati dal Kinect e salvali, così altri oggetti possono richiederlo? O dovrei passare i dati agli oggetti che ne hanno bisogno?
Un disegno con nomi generici, le frecce indicano come devono scorrere i dati:
Kinect ---> KinectManager |---> DataProcessor
|---> DataHandler
|---> DataSomething
Il mio sospetto è il primo caso, perché potrei avere oggetti diversi richiedere dati, senza che KinectManager debba conoscere gli oggetti. Anche se nel secondo caso potrei progettare un'interfaccia con, ad esempio, un metodo Update () che riceve i dati Kinect.