Latest web development tutorials

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.

Null-Objekt Muster UML-Diagramm

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