Ho un oggetto complesso che ha bisogno di calcolare regolarmente un sottooggetto che rappresenta vari aspetti dello stato del genitore come un fascio. Ad esempio, immagina che l'oggetto rappresenti informazioni su un velivolo e che l'oggetto secondario sia un riepilogo di vari parametri chiave dell'aeromobile in un momento particolare come la sua direzione, velocità, ecc. L'oggetto deve memorizzare l'ultima versione calcolata del sub-oject.
Attualmente il modo in cui lo faccio è che ho un metodo di vuoto nell'oggetto che computa il calcolo e quindi imposta una variabile a livello di modulo per essere uguale al sub-oggetto di nuova elaborazione. L'utente esterno di questo sottooggetto recupera il sotto-oggetto corrente tramite un getter. Quindi, per i metodi client l'operazione è simile a questa:
main_object.computeState();
State new_state = main_object.getState();
Per gestire possibili errori, tuttavia, nel calcolo, che al momento non viene eseguito, sto pensando di passare a un metodo di calcolo che restituisce lo stato:
State new_state = main_object.computeState( error_msg );
if( new_state == null ){
print( error_msg );
goto failure continuation
}
.... [everything ok, continue normally ]
Esiste una strategia migliore per la costruzione di questo modello?