Null Object Model
Leere Objektmodell (Null-Objekt-Muster), und ein leeres Objekt ersetzt Check für NULL Objektinstanz. Null-Objekte sind nicht für NULL-Werte überprüfen, aber nicht die Reaktion eine Beziehung von jeder Handlung. Eine solche Null-Objekte können auch Standardverhalten liefern, wenn Daten nicht verfügbar ist.
Leere Objektmodell, wir eine bestimmte Instanz des abstrakten Klasse erstellen und diese Klasse erweitern, um eine Vielzahl von Operationen durchzuführen, sondern auch eine Klasse erstellt haben nichts von diesem leeren Objektklasse implementiert die leere Objektklasse nahtlos Verwendung anstelle müssen für nULL-Werte zu überprüfen.
Realisierung
Wir werden eine benutzerdefinierte Aktion (in diesem Fall den Namen des Kunden) erstellenAbstractCustomerabstrakte Klasse, und erweitert die EntitätsklassenAbstractCustomerKlasse.CustomerFactoryFactory - Klasse Namen auf den Kunden basierend zu liefern oder RückkehrRealCustomerNullCustomer Objekt.
NullPatternDemo,zeigen wir die Verwendung vonCustomerFactoryKlasse die Verwendung eines leeren Objektmodells zu demonstrieren.
Schritt 1
Erstellen Sie eine abstrakte Klasse.
AbstractCustomer.java
public abstract class AbstractCustomer { protected String name; public abstract boolean isNil (); public abstract String getName (); }
Schritt 2
Erstellen Sie die Entitätsklassen oben Klasse erweitert.
RealCustomer.java
public class RealCustomer erstreckt AbstractCustomer { public RealCustomer (String name) { this.name = name; } @Override public String getName () { Rückkehr Name; } @Override public boolean isNil () { return false; } }
NullCustomer.java
public class NullCustomer erstreckt AbstractCustomer { @Override public String getName () { Rückkehr "Nicht verfügbar in Kundendatenbank"; } @Override public boolean isNil () { return true; } }
Schritt 3
Erstellen SieCustomerFactoryKlasse.
CustomerFactory.java
public class CustomerFactory { public final static String [] names = { "Rob", "Joe", "Julie"}; public static AbstractCustomer GetCustomer (String name) { for (int i = 0; i <names.length; i ++) { if (Namen [i] .equalsIgnoreCase (Name)) { return new RealCustomer (name); } } return new NullCustomer (); } }
Schritt 4
Verwenden SieCustomerFactory,basierend auf den Namen des Kunden zu übergebenRealCustomeroderNullCustomerObjekt zu erhalten.
NullPatternDemo.java
public class NullPatternDemo { public static void main (String [] args) { AbstractCustomer customer1 = CustomerFactory.getCustomer ( "Rob"); AbstractCustomer customer2 = CustomerFactory.getCustomer ( "Bob"); AbstractCustomer CUSTOMER3 = CustomerFactory.getCustomer ( "Julie"); AbstractCustomer customer4 = CustomerFactory.getCustomer ( "Laura"); System.out.println ( "Kunden"); System.out.println (customer1.getName ()); System.out.println (customer2.getName ()); System.out.println (customer3.getName ()); System.out.println (customer4.getName ()); } }
Schritt 5
Stellen Sie sicher, ausgegeben.
Kundschaft ausrauben Nicht verfügbar in Kundendatenbank Julie Nicht verfügbar in Kundendatenbank