Null Object Model
modello di vuoto oggetto (Null Object pattern), e un oggetto sostituito controllo vuota per istanza di oggetto NULL. oggetti nulli non vengono controllate per valori nulli, ma non la reazione un rapporto di qualsiasi azione. Tali oggetti Null può anche fornire comportamento predefinito quando i dati non è disponibile.
modello di oggetto vuoto, creiamo un soggetto designato della classe astratta ed estendere questa classe per eseguire una serie di operazioni, ma anche creare una classe non ha fatto nessuna di questa classe oggetto vuoto implementa la classe oggetto vuoto senza soluzione di continuità l'uso in luogo bisogno di verificare la presenza di valori nulli.
realizzazione
Creeremo un'azione personalizzata (in questo caso, il nome del cliente)AbstractCustomerclasse astratta, ed estende le classi di entità classeAbstractCustomer.CustomerFactory nome della classe fabbrica basata sul cliente per consegnare o restituire oggettoRealCustomerNullCustomer.
NullPatternDemo,dimostriamo l'uso di classeCustomerFactoryper dimostrare l'uso di un modello di oggetto vuoto.
fase 1
Creare una classe astratta.
AbstractCustomer.java
classe astratta pubblica AbstractCustomer { String name protetta; public boolean isNil astratto (); public abstract String getName (); }
fase 2
Creare estende le classi di entità sopra di classe.
RealCustomer.java
public class RealCustomer estende AbstractCustomer { RealCustomer pubblico (String name) { this.name = nome; } @Override public String getName () { Nome tornare; } @Override isNil public boolean () { return false; } }
NullCustomer.java
public class NullCustomer estende AbstractCustomer { @Override public String getName () { tornare "Non disponibile nel database clienti"; } @Override isNil public boolean () { return true; } }
fase 3
Crea classeCustomerFactory.
CustomerFactory.java
public class CustomerFactory { String finale public static [] nomi = { "Rob", "Joe", "Julie"}; public static AbstractCustomer GetCustomer (String name) { for (int i = 0; i <names.length; i ++) { if (nomi [i] .equalsIgnoreCase (nome)) { restituire nuova RealCustomer (nome); } } restituire nuova NullCustomer (); } }
fase 4
UtilizzareCustomerFactory,in base al nome del cliente di passare per ottenereRealCustomeroNullCustomeroggetto.
NullPatternDemo.java
public class NullPatternDemo { Main (string [] args) {public static void AbstractCustomer Customer1 = CustomerFactory.getCustomer ( "Rob"); AbstractCustomer Customer2 = CustomerFactory.getCustomer ( "Bob"); AbstractCustomer customer3 = CustomerFactory.getCustomer ( "Julie"); AbstractCustomer customer4 = CustomerFactory.getCustomer ( "Laura"); System.out.println ( "Clienti"); System.out.println (customer1.getName ()); System.out.println (customer2.getName ()); System.out.println (customer3.getName ()); System.out.println (customer4.getName ()); } }
fase 5
Verifica uscita.
I clienti rapinare Non disponibile in database clienti Julie Non disponibile in database clienti