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 heeft de mogelijkheid om onveranderlijke objecten te maken, waaronder Java, C ++, Erlang, TCL en Scala.

Een onveranderlijk object kan op twee manieren worden gemaakt: door een klasse te creëren die per definitie onveranderlijk is of door expliciet een anderszwijgend object te verklaren. 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 geen manier om methoden te veranderen - d.w.z. overschreven of overbelast - op een manier die de interne gegevens zou veranderen. Dit is de meer ingewikkelder van de twee benaderingen. Om een ​​onveranderlijk object van een andere wi te makenSE Mutable Object daarentegen kan men vaak een trefwoord toepassen om het object aan te wijzen als onveranderlijk.

Als voorbeeld is onveranderlijke objectencreatie in Java sterk afhankelijk van het "laatste" 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 trefwoord "const". 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.

Het maken van een onveranderlijk object met behulp van 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 eigenschappenen gegevens zijn eerst in het object 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.

ANDERE TALEN