Neměnné objekty mohou být užitečné v multivláknových aplikacích. Více vláken může pracovat s daty reprezentovanými neměnnými objekty bez obav z toho, že data budou změněna jinými vlákny. Neměnné objekty jsou proto považovány za bezpečnější pro vlákna než proměnlivé objekty.
Jaký smysl mají neměnné předměty?
Maximální spoléhání se na neměnné objekty je široce přijímáno jako rozumná strategie pro vytváření jednoduchého a spolehlivého kódu. Neměnné objekty jsou zvláště užitečné v souběžných aplikacích. Protože nemohou změnit stav, nemohou být poškozeny interferencí vláken nebo pozorovány v nekonzistentním stavu.
Které objekty by se měly nazývat neměnné?
Neměnné objekty jsou prostě objekty, jejichž stav (data objektu) se po sestavení nemůže změnit. Příklady neměnných objektů z JDK zahrnují String a Integer. Neměnné objekty značně zjednodušují váš program, protože: jsou jednoduché na konstrukci, testování a použití.
Jak implementujete neměnný objekt?
Abyste vytvořili neměnný objekt, musíte dodržovat některá jednoduchá pravidla:
- Nepřidávejte žádnou metodu nastavení.
- Prohlásit všechna pole za konečná a soukromá.
- Pokud je pole proměnlivý objekt, vytvořte jeho obranné kopie pro metody získávání.
- Pokud musí být proměnlivý objekt předaný konstruktoru přiřazen k poli, vytvořte jeho obrannou kopii.
Kde jsmepoužít neměnnou třídu v Javě?
Neměnné třídy usnadňují souběžné programování. Neměnné třídy zajišťují, že se hodnoty nemění uprostřed operace bez použití synchronizovaných bloků. Tím, že se vyhnete blokům synchronizace, zabráníte uváznutí.