Ho una domanda che non so come generalizzare e fare correttamente, quindi proverò con un esempio.
Supponiamo che io progetta un sistema di gestione dei parcheggi. Nel mio sistema, ho gli oggetti Car e ParkingLot , dove ParkingLot contiene una mappa dal numero di targa dell'automobile a Car oggetti. Uno dei metodi di ParkingLot è getCar(n) , che può fallire se n non è un numero di registrazione valido, o se un'automobile con tale numero di registrazione non esiste nel parcheggio.
Ho due opzioni:
-
ha
getCarconvalida il numero di registrazione. Può quindi restituire un errorenot_validse il numero non è valido. Lo svantaggio, a mio avviso, è che l'oggettoParkingLotesegue la convalida dei parametri che appartengono logicamente aCar. -
Hai
getCarcontrolla solo se il numero di registrazione è sulla mappa. Lo svantaggio è che l'unico errore possibile sarebbenot_found, quindi il chiamante non sarebbe in grado di sapere se la funzione non è riuscita perché il numero di registrazione non è valido, o l'auto non è lì.
C'è un modo migliore per andare con questo? Forse c'è una soluzione superiore che consentirà di salvare la validazione extra, che aumenta l'accoppiamento e fornisce comunque informazioni complete per il chiamante?