Ho letto molte domande simili a riguardo, ma nessuna sembra risolvere il problema che sto affrontando. La risposta tipica è di eseguire il cast come classe derivata, ma non posso poiché non conosco il tipo di classe derivata.Come si chiama un metodo di classe derivato dalla classe base?
Ecco il mio esempio:
class WireLessDevice { // base class
void websocket.parsemessage(); // inserts data into the wireless device object
}
class WiFi : WireLessDevice { // derived class
GPSLoc Loc;
}
dispositivo wireless può anche essere derivata per fare Bluetooth, Wi-Max, cellulari, dispositivi ecc e quindi non so quale tipo di wirelessdevice sarà la ricezione dei dati .
Quando un pacchetto GPS viene ricevuto sul websocket nella classe base, è necessario aggiornare la posizione del dispositivo derivato.
Ho pensato di inviare un messaggio tramite una coda o di creare un gestore di eventi e di inviare la posizione negli argomenti dell'evento, ma quelli sembrano un po 'goffi quando i dati restano all'interno della classe.
C'è qualcosa di costruito nel linguaggio che mi consenta di chiamare il mio dispositivo derivato dalla classe base senza conoscerne il tipo?
Dai un'occhiata al motivo decorativo. Il tuo problema sembra essere il tuo design sbagliato. –
Non c'è bisogno di un decoratore ... Dai un'occhiata ai metodi astratti o virtuali ... – Crisfole