Skip to main content

Wat is een onveranderlijk object?

In objectgeoriënteerde programmering is een onveranderlijk object een object waarvan de eigenschappen niet kunnen worden gewijzigd nadat het is gemaakt.De meeste objecten zijn daarentegen veranderlijke objecten, wat betekent dat sommige of al hun eigenschappen na de creatie vrij kunnen worden gewijzigd.Een verscheidenheid aan computertalen kan onveranderlijke objecten maken, waaronder Java, C ++, Erlang, TCL en Scala.

Een onveranderlijk object kan op een van twee manieren worden gemaakt: door een klasse te creëren die per definitie onveranderlijk is of expliciet isHet verklaren van een anderszinsbaar object als onveranderlijk.De methodologie voor het maken van een onveranderlijke klasse varieert afhankelijk van de gebruikte computertaal.Ongeacht de taal, moet een onveranderlijke klasse geen methoden hebben die de interne gegevens kunnen veranderen en op geen enkele manier voor methoden kunnen worden gewijzigd mdash;d.w.z. opgeheven of overbelast mdash;op een manier die zijn interne gegevens zou veranderen.Dit is de meer ingewikkelder van de twee benaderingen.Om een onveranderlijk object van een anders veranderlijk object te maken, kan men daarentegen vaak een trefwoord toepassen om het object aan te wijzen als onveranderlijk.

Als een voorbeeld, onveranderlijk objectcreatie in Java is sterk afhankelijk van het uiteindelijke trefwoord.Een snelle manier om een klas onveranderlijk in Java te maken, is door de klas te verklaren, evenals alle methoden en dataleden, definitief.Een vergelijkbare strategie kan ook worden gebruikt in C ++ met het Const -trefwoord.Deze benaderingen, afhankelijk van de klasse -inhoud, zijn echter misschien niet de beste.Over het algemeen kunnen objecten meestal onveranderlijk worden gemaakt door zorgvuldig onderhoud van hun interne gegevens.

Een onveranderlijk object maken met een trefwoord, zoals in het bovenstaande voorbeeld, is vaak veel eenvoudiger dan het schrijven van een hele klasse om onveranderlijk te zijn.Het gebruik van deze aanpak heeft echter zijn gevaren.Wanneer u op deze manier expliciet een onveranderlijk object aangeeft, is het belangrijk dat de programmeur er zeker van is dat alle geschikte eigenschappen en gegevens eerst in het object zijn opgenomen.Vertrouwen op een onvolledig object kan gevaarlijk zijn, vooral als het een essentieel stuk informatie mist.

Als een object veranderbaar is, maar vereist dat onveranderlijke gegevens correct worden gemaakt, moeten de onveranderlijke gegevens worden geïnitialiseerd voordat het veranderlijke object kan worden gemaakt.Immutable -objecten zijn altijd onveranderlijk, of het nu gaat om gegevenswaarden of grote objecten en moeten altijd als zodanig worden behandeld.Over het algemeen kan een onveranderlijk object niet worden veranderd nadat het is gemaakt, hoewel ze soms kunnen worden gekopieerd als veranderlijke objecten.Meestal kan worden aangenomen dat een onveranderlijk object en elk van de kopieën ook onveranderlijk zijn, wat gegevens of geheugenproblemen kan voorkomen.