Wzorce projektowe – Null Object

Posted on Posted in Java SE

Opis

Jego podstawową ideą jest to, aby w sytuacji gdy chcemy aby nasza metoda nie zwracała obiektu, np. w skutek nie spełnienia jakiegoś warunku, zwrócić tytułowy Null Object zamiast pustej referencji czyli null . Czyni to nasz kod odpornym na występowanie NullPointerException, a jak wiadomo jest to wyjątek występujący bardzo często.

Przepis na implementacje

1. Zadeklaruj interfejs bądź klasę abstrakcyjną nawet w sytuacji, w której masz tylko jedną klasę którą będziesz zwracał lub nie – w zależności od warunku.

 

2. Zaimplementuj właściwą klasę konkretną rozszerzając bazową.

3. Zaimplementuj klasę odpowiadającą stanowi null, możesz dodać w niej metodę isNil() zwracającą true;

 

4. Od teraz zamiast zwracać pustą referencję czyli null-a zwracaj NullObject z punktu 3.

Ciesz się kodem wolnym od NullPointerException.

One thought on “Wzorce projektowe – Null Object

  1. Nie jestem przekonany czy te rozwiązanie jest wystarczająco dobre.
    Po pierwsze, zakładając że obiekty każdej klasy są zwracane z jakieś metody w naszej aplikacji/systemie. Daje nam to narzut dla każdej klasy: dodatkowego interfejsu i dodatkowej klasy.
    Łącznie 3 razy więcej struktur.
    Po drugie, to że zwrócimy napis ‚OBJECT IS NULL’ wygląda na zepsucie całej koncepcji…
    Nie dostajemy żadnej informacji z miejsca w którym coś nie poszło nie tak, nie jest to w żaden sposób lepsze niż
    NPE przed którym ten wzorzec ma nas chronić.

    Rozwiązaniem wydaje się być rzucenie odpowiedniego wyjątku.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *