Waar onveranderlijke objecten gebruiken?

Inhoudsopgave:

Waar onveranderlijke objecten gebruiken?
Waar onveranderlijke objecten gebruiken?
Anonim

Onveranderlijke objecten kunnen handig zijn in multi-threaded toepassingen. Meerdere threads kunnen reageren op gegevens die worden weergegeven door onveranderlijke objecten zonder dat u zich zorgen hoeft te maken dat de gegevens door andere threads worden gewijzigd. Onveranderlijke objecten worden daarom als meer thread-safe beschouwd dan veranderlijke objecten.

Wat is het nut van onveranderlijke objecten?

Maximaal vertrouwen op onveranderlijke objecten wordt algemeen aanvaard als een goede strategie voor het maken van eenvoudige, betrouwbare code. Onveranderlijke objecten zijn met name handig in gelijktijdige toepassingen. Omdat ze de status niet kunnen veranderen, kunnen ze niet worden beschadigd door draadinterferentie of in een inconsistente staat worden waargenomen.

Welke objecten moeten onveranderlijk worden genoemd?

Onveranderlijke objecten zijn gewoon objecten waarvan de status (de gegevens van het object) niet kunnen veranderen na constructie. Voorbeelden van onveranderlijke objecten uit de JDK zijn String en Integer. Onveranderlijke objecten vereenvoudigen uw programma aanzienlijk, omdat ze: eenvoudig te construeren, te testen en te gebruiken zijn.

Hoe implementeer je een onveranderlijk object?

Om een onveranderlijk object te maken, moet je enkele eenvoudige regels volgen:

  1. Voeg geen setter-methode toe.
  2. Declareer alle velden definitief en privé.
  3. Als een veld een veranderlijk object is, maak er dan defensieve kopieën van voor getter-methoden.
  4. Als een veranderlijk object dat aan de constructor is doorgegeven, moet worden toegewezen aan een veld, maak er dan een defensieve kopie van.

Waar zijn weonveranderlijke klasse gebruiken in Java?

Onveranderlijke klassen maken concurrent programmeren gemakkelijker. Onveranderlijke klassen zorgen ervoor dat waarden niet tijdens een bewerking worden gewijzigd zonder gesynchroniseerde blokken te gebruiken. Door synchronisatieblokkades te vermijden, vermijdt u impasses.

Aanbevolen: