Value object

Objekty můžeme rozdělit do dvou druhů, podle toho jakým způsobem se identifikují. Value objekt je typ objektu, který nemá indentitu ani stav. V programování se často hodí některé věci reprezentovat jako n-tici, či výčet vlastností. Příkladem jsou souřadnice, datum.

Vlastnost identity je důležitá zejména pro operaci rovnosti, u které zjištujeme zda si jsou jednotlivé instance rovny. U value objektu porovánáváme hodnoty, které objekt nese. U referenčních objektů můžeme porovnat pouze identitu, nebo referenci.

Každý jazyk pracuje s operátorem rovnosti jinak. Ve funkcionálních jazycích se běžně s datovými typy zachází jako s value objekty, kdežto u OOP jazyků pokud nepřetížíme operátor jinak, srovnáváme objekty skrz jejich reference v paměti.

Value objekty se doporučuje, aby byly vytvářeny jako immutabilní tj. vytvořili pomocí argumentů konstruktoru a pokud je potřeba objekt změnit, je lepší jej zahodit a vytvořit znovu.

Související