Vastaus on, että muuttumattomat tyypit ovat turvallisempia virheiltä, helpompia ymmärtää ja valmiimpia muutoksiin. Muuttuvuus vaikeuttaa ohjelmasi tekemisen ymmärtämistä, ja sopimusten täytäntöönpano on paljon vaikeampaa.
Ovatko muuttuvat objektit huonoja?
Lopuksi muuttuvat objektit ovat tappajia samanaikaisissa tilanteissa. Aina kun käytät muuttuvaa objektia erillisistä säikeistä, sinun on käsiteltävä lukitsemista. Tämä vähentää suorituskykyä ja tekee koodistasi huomattavasti vaikeampaa ylläpitää.
Miksi jaettu tila on huono?
Jaettu muuttuva tila toimii seuraavasti: Jos kaksi tai useampi osapuoli voi muuttaa samoja tietoja (muuttujia, objekteja jne.). Ja jos heidän elinaikansa menevät päällekkäin. Tällöin on olemassa vaara, että yhden osapuolen muutokset estävät muita osapuolia toimimasta oikein.
Miksi muuttumattomuus on hyvä asia?
Vähemmän muistin käytön lisäksi muuttumattomuus antaa sinun optimoida sovelluksesi käyttämällä viite- ja arvotasa-arvoa. Näin on todella helppo nähdä, onko jokin muuttunut. Esimerkiksi tilanmuutos reagoivassa komponentissa.
Mitä ovat muuttumattomuuden haitat?
Ainoa todellinen muuttumattomien luokkien haittapuoli on että ne vaativat erillisen objektin jokaiselle erilliselle arvolle. Näiden esineiden luominen voi olla kallista, varsinkin jos ne ovat suuria. Oletetaan esimerkiksi, että sinulla on miljoonan bitin BigInteger ja haluat muuttaa sen matalan kertaluvun bittiä:BigInteger moby=…; moby=moby.