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 .