Null Object Model
modelo de objeto vacío (modelo objeto nulo), y un cheque sustituido objeto vacío para la instancia de objeto NULL. objetos nulos no se comprueban los valores nulos, pero no la reacción de una relación de cualquier acción. Tales objetos nulos también pueden proporcionar un comportamiento por defecto cuando los datos no está disponible.
modelo de objeto vacío, creamos una entidad designada de la clase abstracta y extender esta clase para realizar una variedad de operaciones, sino también crear una clase de no hacer nada de esta clase de objeto vacío implementa la clase de objeto vacío sin problemas su uso en el lugar necesario para comprobar si hay valores nulos.
realización
Vamos a crear una acción personalizada (en este caso, el nombre del cliente) clase abstractaAbstractCustomer,y se extiende a las clases de entidad de claseAbstractCustomer.nombre de la clase de fábricaCustomerFactorybasado en el cliente para entregar o devolver objetoRealCustomerNullCustomer.
NullPatternDemo,que demuestran el uso de la claseCustomerFactorypara demostrar el uso de un modelo de objetos vacía.
Paso 1
Crear una clase abstracta.
AbstractCustomer.java
clase abstracta pública AbstractCustomer { String nombre protegido; isNil abstract boolean pública (); getNombre cadena pública abstracta (); }
Paso 2
Crear extiende por encima de las clases de entidad de clase.
RealCustomer.java
RealCustomer clase pública se extiende AbstractCustomer { RealCustomer pública (String nombre) { this.name = nombre; } @ Override Public String getName () { Nombre del retorno; } @ Override isNil public boolean () { return false; } }
NullCustomer.java
NullCustomer clase pública se extiende AbstractCustomer { @ Override Public String getName () { volver "no está disponible en la Base de datos de los clientes"; } @ Override isNil public boolean () { return true; } }
paso 3
Crear claseCustomerFactory.
CustomerFactory.java
CustomerFactory public class { Static final String pública [] = {nombres "Rob", "Joe", "Julie"}; public static AbstractCustomer GetCustomer (String nombre) { for (int i = 0; i <names.length; i ++) { si (nombres [i] .equalsIgnoreCase (nombre)) { volver nueva RealCustomer (nombre); } } volver nueva NullCustomer (); } }
Paso 4
UtiliceCustomerFactory,basado en el nombre del cliente que pasar para llegarRealCustomeroNullCustomerobjeto.
NullPatternDemo.java
NullPatternDemo public class { principales argumentos (String []) {public static void AbstractCustomer cliente1 = CustomerFactory.getCustomer ( "Rob"); AbstractCustomer Customer2 = CustomerFactory.getCustomer ( "Bob"); AbstractCustomer customer3 = CustomerFactory.getCustomer ( "Julie"); AbstractCustomer customer4 = CustomerFactory.getCustomer ( "Laura"); System.out.println ( "Clientes"); System.out.println (customer1.getName ()); System.out.println (customer2.getName ()); System.out.println (customer3.getName ()); System.out.println (customer4.getName ()); } }
paso 5
Verifique la salida.
clientes robar No disponible en la Base de datos de los clientes Julie No disponible en la Base de datos de los clientes