Null Object Pattern - follen99/designPatterns GitHub Wiki

Null object pattern

pattern

Dovremmo utilizzare il pattern Null Object quando un client altrimenti effettuerebbe un controllo per null solo per saltare l'esecuzione o effettuare un'azione di default

In questi casi, potremmo incapsulare una logica neutrale in un oggetto null e ritornarlo al client invece del valore nullo, in questo modo il client non ha più bisogno di sapere se una data istanza sia null oppure no.


In altre parole

Quando dovremmo ritornare un oggetto null, al suo posto ritorniamo un oggetto che il client si aspetta (ad esempio un tipo Password o User o BloodBag). Questo oggetto sarà un oggetto di default, quindi avente tutti valori preimpostati.

In questo modo, invece di controllare se un oggetto ritornato è null oppure no, il client può semplicemente trattare l'oggetto ritornato come l'oggetto atteso, senza effettuare controlli.


Possibile applicazione

Un'applicazione pratica del pattern null object potrebbe essere applicata al sistema CARE: Nell'autenticazione infatti, invece di ritornare un'eccezione quando l'username risulta essere null (quindi non autenticato), potremmo utilizzare il pattern per far visualizzare all'utente non registrato una pagina specifica, autenticandolo quindi come Guest.

user Ci basterà quindi creare una classe con gli stessi metodi e variabili di istanza della classe iniziale, ed inizializzarla con valori di default


Questo esempio è stato fatto in JavaScript per semplicità, essendo un linguaggio non tipizzato. In Java il meccanismo è molto simile.

Source