Refactorización/Introducir objeto nulo
se usa cuando hay muchas comprobaciones de si un valor es null, y se hace sustituyendo el valor por un objeto nulo
Sustituir el valor null por un objeto nulo.
[editar]- La esencia del polimorfismo es que en vez de preguntarle a un objeto de qué tipo es y a continuación invocar a algún comportamiento basado en dicho tipo, simplemente invocamos al comportamiento
- El propio objeto, dependiendo de su tipo, hará lo que tenga que hacer (polimorfismo)
- Uno de los ejemplos menos intuitivos de polimorfismo es cuando tenemos un valor nulo en un campo
// clase cliente
if (customer == null)
plan = BillingPlan.basic();
else
plan = customer.getPlan();
class NullCustumer extends Customer {
boolean isNull() { return true;)
// metodos que hereda de Custumer con la logica especifica de objeto
nulo
class Customer {
boolean isNull() { return false;)
static Customer newNull()
{ return new NullCostumer();}
// los metodos comunes de Custumer no nulo
// Clase cliente
Customer getCustomer()
{ if (_customer == null)
return Customer.newNull() // factory method
else return _customer;
}
..
- Los objetos nulos son siempre constantes,Por tanto, los implementamos usando el patrón Singleton - Cada vez que solicitamos una persona que no existe, obtendremos la misma instancia de la clase NullCustomer - Tienen sentido cuando la mayoría de los clientes esperan la misma respuesta.