Null Object
Null Object (česky prázdný objekt) je název pro návrhový vzor, používaný při programování. Nahrazuje prázdný ukazatel NULL a tím se snaží eliminovat problémy s ním spojené.
Účel
U referenčních proměnných můžeme použít výraz NULL (prázdný ukazatel). Ten se může přetypovat na jakýkoliv referenční typ. Problém může nastat v případě, že před přetypováním a přiřazením objektu se pokusíme na prázdném ukazateli zavolat nějakou metodu. Toto volání bude končit chybou (například v jazyce Java vyvoláním výjimky NullPointerException).
Abychom se tohoto problému zbavili, tak můžeme použít kontroly zda je výraz roven prázdnému ukazateli. - Toto ověřování (které se může opakovat mnohokrát v celém programu) můžeme odstranit právě pomocí vzoru Null Object.
Přiřazením objektu Null Object předejdeme chybě s prázdným ukazatelem (nulový objekt je plnohodnotným objektem). A ošetření stavu, že není přiřazen jiný objekt, vyřešíme právě uvnitř návrhového vzoru. Tím předejdeme chybám a odstraníme duplicitní části kódu.
Základní implementace
Jedním ze způsobů implementace je rozhraní[1]. Postup je následující:
- vytvoříme společné rozhraní pro nulový a nenulový objekt
- jako typ ukazatele budeme implementovat rozhraní z bodu 1.
- místo hodnoty NULL umístíme odkaz na nulový objekt
- navrhneme a implementujeme chování nulového objektu
Odkazy
Reference
- HORDĚJČUK, Vojtěch. Dostupné online.
Literatura
- PECINOVSKÝ, Rudolf. Návrhové vzory – 33 vzorových postupů pro objektové programování. Brno: Computer Press, 2007. ISBN 978-80-251-1582-4.
Externí odkazy
- Obrázky, zvuky či videa k tématu Null Object na Wikimedia Commons
- Null Object na Algoritmy.net
- Vojtěch Hordějčuk - Null Object