Svaret er at uforanderlige typer er tryggere mot feil, enklere å forstå og mer klare for endring. Mulighet gjør det vanskeligere å forstå hva programmet ditt gjør, og mye vanskeligere å håndheve kontrakter.
Er mutbare objekter dårlige?
Til slutt, mutable objekter er killer i samtidige situasjoner. Hver gang du får tilgang til et mutbart objekt fra separate tråder, må du håndtere låsing. Dette reduserer gjennomstrømmingen og gjør koden din dramatisk vanskeligere å vedlikeholde.
Hvorfor er delt tilstand dårlig?
Delt mutable tilstand fungerer som følger: Hvis to eller flere parter kan endre de samme dataene (variabler, objekter, etc.). Og hvis deres levetid overlapper hverandre. Da er det fare for at en parts modifikasjoner hindrer andre parter i å fungere korrekt.
Hvorfor er uforanderlighet en god ting?
I tillegg til redusert minnebruk, lar uforanderlighet deg optimalisere applikasjonen din ved å bruke referanse- og verdilikhet. Dette gjør det veldig enkelt å se om noe har endret seg. For eksempel en tilstandsendring i en reaksjonskomponent.
Hva er ulempene med uforanderlighet?
Den eneste virkelige ulempen med uforanderlige klasser er at de krever et separat objekt for hver distinkte verdi. Å lage disse objektene kan være kostbart, spesielt hvis de er store. Anta for eksempel at du har et millionbits BigInteger og du vil endre dens lavordensbit:BigInteger moby=…; moby=moby.