Intención del patrón
Encapsular la ausencia de un objeto mediante la provisión de una alternativa sustituible que ofresca un valor por defecto con comportamiento "No hacer nada". En resumen, un diseño en donde "nada resultará de nada".
Usar el patrón
Null object cuando:
- Un objeto requiera de un colaborador. El patrón Null object no introduce esta colaboración; hace que se use una colaboración que ya existía.
- Alguna de las intancias del colaborador no haga nada.
- Se desee abstraer el manejo del "null" fuera del cliente.
Problema de ejemplo
Dado que una referencia a un objeto puede opcionalmente ser nula y que el resultado de la verificación de ser
null es no hacer nada o usar algún valor por defecto ¿Cómo puede la ausencia de un objeto (la presencia de una referencia nula) ser tratada de manera transparente?