Nel nostro progetto abbiamo bisogno di memorizzare qualche oggetto (utente, per esempio) e anche di classe utente deve avere una bandiera di convalida (metodi come setOutdated e isOutdated)Quale modello preferirei?
Di tanto in tanto, il nostro oggetto d'uso possono essere nulli, ma in questo caso il flag di convalida deve essere raggiungibile. È possibile estrarre questi metodi dalla classe User, ma quel campo e questi metodi devono essere all'interno di quella classe a causa della semantica.
Ho trovato alcuni articoli su Null Object pattern (come this), e voglio sapere - è possibile creare Null Object (come pattern) che può memorizzare diversi stati come null obsoleti, null non superati, non null obsoleto e non nullo non obsoleto.
PS: Se un campo introdurre "Vecchio" nella mia classe, sarà davvero difficile oggetto chiaro invece di impostare a NULL
C'è qualche ragione particolare per cui non si desidera controllare se è null prima di chiamare effettivamente "isOutdated()" o simili "controllori di stato"? – DejanLekic
Anche se l'utente è nullo, devo avere accesso al campo obsoleto, quindi devo memorizzare da qualche parte le informazioni – skayred
In tal caso, aggiungerei semplicemente uno stato, ad esempio "readyToUse" che è impostato su false per impostazione predefinita e utilizzare l'oggetto come se fosse "non un null" solo quando readyToUse è vero. – DejanLekic