Co je neměnný objekt?

V objektově orientovaném programování je neměnným objektem objekt, 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 lze po vytvoření volně měnit. Různé počítačové jazyky mají schopnost vytvářet neměnné objekty, včetně Java, C ++, erlang, Tcl a scala.

Neměnitelný objekt lze vytvořit jedním ze dvou způsobů: vytvořením třídy, která je podle definice neměnná nebo výslovným prohlášením jinak zaměnitelného objektu za neměnný. Metodika vytváření neměnné třídy se liší v závislosti na použitém počítačovém jazyce. Bez ohledu na jazyk, neměnná třída nesmí mít žádné metody, které mohou měnit její interní data, a žádný způsob, jak změnit metody - tj. Overridden nebo overloaded - způsobem, který by změnil její interní data. To je složitější z obou přístupů. Pro vytvoření neměnného objektu z jinak zaměnitelného objektu lze na druhou stranu často použít klíčové slovo k označení objektu jako neměnného.

Například vytvoření neměnného objektu v Javě se silně spoléhá na klíčové slovo „konečné“. Rychlý způsob, jak učinit třídu nezměnitelnou v Javě, je prohlásit třídu, stejně jako všechny její metody a datové členy, za finální. Podobnou strategii lze také použít v C ++ s klíčovým slovem „const“. Tyto přístupy však nemusí být v závislosti na obsahu třídy nejlepší. Obecně lze objekty obvykle učinit neměnnými pečlivou údržbou jejich interních dat.

Vytváření neměnného objektu pomocí klíčového slova, jako ve výše uvedeném příkladu, je často mnohem snazší než psát celou třídu tak, aby byla neměnná. Použití tohoto přístupu však má svá nebezpečí. Při explicitním označení neměnného objektu tímto způsobem je důležité, aby se programátor ujistil, že do objektu byly nejprve začleněny všechny příslušné vlastnosti a data. Spoléhání se na neúplný objekt může být nebezpečné, zejména pokud mu chybí nezbytná informace.

Pokud je objekt zaměnitelný, ale vyžaduje, aby byla neměnná data vytvořena správně, musí být neměnná data inicializována, než bude možné vytvořit proměnný objekt. Neměnné objekty jsou vždy neměnné, ať už se jedná o datové hodnoty nebo velké objekty, a musí se s nimi vždy zacházet. Obecně nelze neměnný objekt učinit mutabilním poté, co byl vytvořen, ačkoli mohou být někdy zkopírovány jako zaměnitelné objekty. Obvykle lze předpokládat, že neměnný objekt a jeho kopie jsou také neměnné, což může zabránit problémům s daty nebo pamětí.

JINÉ JAZYKY

Pomohl vám tento článek? Děkuji za zpětnou vazbu Děkuji za zpětnou vazbu

Jak můžeme pomoci? Jak můžeme pomoci?