Co je to neměnný objekt?
V objektově orientovaném programování je neměnný objekt objektem, jehož vlastnosti nelze po vytvoření změnit. Naproti tomu většina objektů jsou proměnlivé objekty, což znamená, že některé nebo všechny jejich vlastnosti mohou být po vytvoření volně změněny. Řada počítačových jazyků má schopnost vytvářet neměnné objekty, včetně Java, C ++, Erlang, TCL a Scala.
Neměřený objekt lze vytvořit jedním ze dvou způsobů: vytvořením třídy, která je podle definice, nebo výslovně prohlásí jinak odměňovatelný objekt. Metodika pro vytvoření neměnné třídy se liší v závislosti na používaném počítačovém jazyce. Bez ohledu na jazyk nesmí neměnná třída mít žádné metody, které mohou změnit její interní data a žádný způsob, jak se měnit metody - tj. Přepsané nebo přetížení - způsobem, který by změnil její interní data. To je komplikovanější ze dvou přístupů. Vytvoření neměnného objektu z OtherwiSE MUTABLE objekt, na druhé straně, lze často použít klíčové slovo k označení objektu jako neměnného.
Jako příklad se neměnné vytváření objektů v Javě silně spoléhá na „finální“ klíčové slovo. Rychlý způsob, jak učinit třídu neměnnou v Javě, je prohlásit třídu, stejně jako všechny její metody a datové členy, finále. Podobnou strategii lze také použít v C ++ s klíčovým slovem „const“. Tyto přístupy však v závislosti na obsahu třídy nemusí být ty nejlepší. Obecně lze objekty obvykle nezměnit pečlivou údržbou jejich interních dat.
Vytvoření neměnného objektu pomocí klíčového slova, jako ve výše uvedeném příkladu, je často mnohem snazší než napsat celou třídu, aby byla neměnitelná. Použití tohoto přístupu však má svá nebezpečí. Při výslovném označení neměnného objektu je důležité, aby se programátor ujistil, že všechny vhodné vlastnostia data byla nejprve začleněna do objektu. Spoléhání se na neúplný objekt může být nebezpečné, zejména pokud chybí základní informace.
Pokud je objekt proměnlivý, ale vyžaduje, aby byly neměnné údaje správně vytvořeny, musí být neměnná data inicializována před provedením proměnného objektu. Immitabilní objekty jsou vždy neměnné, ať už se jedná o hodnoty dat nebo velké objekty, a musí se s nimi vždy zacházet. Obecně nelze po jeho vytvoření proměnit neměnný objekt, ačkoli je někdy zkopírován jako proměnlivé objekty. Obvykle lze předpokládat, že je také neměnný neměnný objekt a některá z jeho kopií, což může zabránit problémům s daty nebo pamětí.