Skip to main content

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.Různé počítačové jazyky mají schopnost vytvářet neměnné objekty, včetně Java, C ++, Erlang, TCL a Scala.

Nebytelný objekt lze vytvořit jedním ze dvou způsobů: vytvořením třídy, která je podle definice, i neměnná nebo výslovněProhlašování jinak proměnného objektu za neměnný.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é by mohly změnit její interní data a žádný způsob, jak se měnit metody mdash;tj. přepsané nebo přetížené mdash;způsobem, který by změnil její interní data.To je komplikovanější ze dvou přístupů.Chcete -li vytvořit neměnný objekt z jinak proměnného objektu, na druhé straně lze často použít klíčové slovo k označení objektu jako neměnného.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ě mohou být objekty obvykle nezměnitelné pečlivou údržbou jejich interních dat.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 do objektu byly nejprve začleněny všechny vhodné vlastnosti a data.Spoléhání se na neúplný objekt může být nebezpečné, zejména pokud chybí nezbytná informace.

Pokud je objekt proměnlivý, ale vyžaduje, aby neměly být neměnné údaje správně vytvořeny, musí být neměnné údaje inicializovány dříve, než bude možné provést proměnlivý objekt.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ý, což může zabránit problémům s daty nebo pamětí.