Null Object Model
Puste model obiektowy (Null Wzorzec Object), i pusty obiekt podstawiony czek na instancji obiektu NULL. Null obiekty nie są sprawdzania wartości null, ale nie reakcyjnej relacji jakiegokolwiek działania. Takie Null obiekty mogą również domyślne zachowanie, kiedy dane nie są dostępne.
Puste Object Model, tworzymy wyznaczony podmiot z klasy abstrakcyjnej i rozszerzenie tej klasy do wykonywania różnych operacji, ale także tworzyć klasy nie zrobił żadnej z tej pustej klasy obiektów realizuje pustą klasę obiektu płynnie stosowanie w miejscu trzeba sprawdzić dla wartości null.
realizacja
Będziemy tworzyć niestandardowe działania (w tym przypadku, nazwa klienta)AbstractCustomerklasa abstrakcyjna i rozciąga klas encjiAbstractCustomerklasy.CustomerFactorynazwa klasy fabryki w oparciu o klienta do dostarczenia lub zwrotu przedmiotuRealCustomerNullCustomer.
NullPatternDemo wykazujemyzastosowanie klasyCustomerFactorywykazać wykorzystanie pustego modelu obiektowego.
Etap 1
Tworzenie klasy abstrakcyjnej.
AbstractCustomer.java
public abstract class AbstractCustomer { chronione String name; public abstract boolean isNil (); public abstract String getName (); }
Etap 2
Tworzenie rozszerza podmiot klas wyżej klasy.
RealCustomer.java
public class RealCustomer rozciąga AbstractCustomer { RealCustomer publicznych (String name) { this.name = nazwa; } @Override public String getName () { powrót nazwę; } @Override public boolean isNil () { return false; } }
NullCustomer.java
public class NullCustomer rozciąga AbstractCustomer { @Override public String getName () { return "niedostępny w bazie danych klientów"; } @Override public boolean isNil () { return true; } }
etap 3,
TworzenieCustomerFactoryklasę.
CustomerFactory.java
{public class CustomerFactory public static final String [] = {nazwy "Rob", "Joe", "Julie"}; public static AbstractCustomer getCustomer (String name) { for (int i = 0; i <names.length; i ++) { if (nazwy [i] .equalsIgnoreCase (nazwa)) { powrót nowego RealCustomer (nazwa); } } powrót nowego NullCustomer (); } }
Etap 4
UżyjCustomerFactory,na podstawie nazwy klienta przejść, aby dostaćRealCustomerlubNullCustomerobiekt.
NullPatternDemo.java
{public class NullPatternDemo public static void main (String [] args) { AbstractCustomer customer1 = CustomerFactory.getCustomer ( "Rob"); AbstractCustomer KLIENT2 = CustomerFactory.getCustomer ( "Bob"); AbstractCustomer customer3 = CustomerFactory.getCustomer ( "Julie"); AbstractCustomer customer4 = CustomerFactory.getCustomer ( "Laura"); System.out.println ( "Klienci"); System.out.println (customer1.getName ()); System.out.println (customer2.getName ()); System.out.println (customer3.getName ()); System.out.println (customer4.getName ()); } }
Etap 5
Sprawdź, czy wyjście.
klientela obrabować Niedostępny w bazie danych klientów Julie Niedostępny w bazie danych klientów