Odpovědí je, že neměnné typy jsou bezpečnější před chybami, snáze pochopitelné a připravenější na změnu. Proměnlivost ztěžuje pochopení toho, co váš program dělá, a mnohem obtížnější vynutit smlouvy.
Jsou proměnlivé objekty špatné?
Konečně, proměnlivé objekty jsou zabíjející v souběžných situacích. Kdykoli přistupujete k proměnlivému objektu ze samostatných vláken, musíte se vypořádat s uzamčením. To snižuje propustnost a výrazně ztěžuje údržbu vašeho kódu.
Proč je sdílený stav špatný?
Sdílený proměnlivý stav funguje následovně: Pokud dvě nebo více stran mohou měnit stejná data (proměnné, objekty atd.). A pokud se jejich životy překrývají. Pak existuje riziko, že úpravy jedné strany znemožní ostatním stranám pracovat správně.
Proč je neměnnost dobrá věc?
Kromě sníženého využití paměti vám neměnnost umožňuje optimalizovat vaši aplikaci využitím referenční a hodnotové rovnosti. Díky tomu je opravdu snadné zjistit, zda se něco změnilo. Například změna stavu v reakční složce.
Jaké jsou nevýhody neměnnosti?
Jedinou skutečnou nevýhodou neměnných tříd je to, že vyžadují samostatný objekt pro každou odlišnou hodnotu. Vytváření těchto objektů může být nákladné, zvláště pokud jsou velké. Předpokládejme například, že máte milionbitový BigInteger a chcete změnit jeho bit nízkého řádu:BigInteger moby=…; moby=moby.