Diciamo che ho un sito web di social media. Su questo sito Web, gli utenti possono caricare diverse informazioni su se stessi, incluso il loro numero di telefono. Per implementarlo, ho una classe chiamata PhoneNumber che rappresenta il numero di telefono dell'utente. Ma i numeri di telefono sono opzionali. Ho questa classe PhoneNumber che dovrebbe garantire l'accesso al numero di telefono di un utente, ma non può. Come gestisco questo?
Il mio attuale approccio è, ogni volta che c'è un problema, assegnare un valore a una variabile error all'interno di PhoneNumber che rappresenta il problema in questione (questa potrebbe essere un'eccezione, una stringa o un codice di errore, è irrilevante per questa domanda). Ho anche aggiunto un metodo a PhoneNumber chiamato isPhoneNumberAvailable() che dovrebbe essere chiamato prima che venga utilizzato uno degli accessor. Se uno degli accessor viene chiamato e l'utente non ha aggiunto il proprio numero di telefono, lancio un IllegalStateException . Ma questa non sembra una buona soluzione. Non sono sicuro del perché, sono troppo nuovo per spiegarlo, ma sembra che questo potrebbe causarmi dei problemi lungo la strada.
Si noti che questa domanda è indipendente dal linguaggio, l'esistenza di un IllegalStateException in Java è puramente casuale.
EDIT: la soluzione sta migliorando il modello. Ho garantito l'accesso a qualcosa a cui non posso garantire l'accesso, che è un cattivo design. Il mio altro problema era con l'uso di una variabile error in scope di classe, ma questo va oltre lo scopo di questa domanda. Vedi la mia domanda di follow-up qui .