Vastus on, et muutumatud tüübid on vigade eest kaitstud, kergemini mõistetavad ja muutusteks valmis. Muutus muudab teie programmi tegemiste mõistmise raskemaks ja lepingute jõustamise palju raskemaks.
Kas muudetavad objektid on halvad?
Lõpuks on muudetavad objektid tapjad samaaegsetes olukordades. Kui pääsete muudetava objekti juurde eraldi lõimedest, peate tegelema lukustamisega. See vähendab läbilaskevõimet ja muudab teie koodi hooldamise oluliselt keerulisemaks.
Miks on jagatud olek halb?
Jagatud muutuv olek toimib järgmiselt: Kui kaks või enam osapoolt saavad samu andmeid (muutujaid, objekte jne) muuta. Ja kui nende eluiga kattub. Siis on oht, et ühe osapoole muudatused takistavad teistel osapooltel korralikult töötamast.
Miks on muutumatus hea?
Lisaks vähendatud mälukasutusele võimaldab muutumatus optimeerida oma rakendust, kasutades viite- ja väärtusvõrdsust. Nii on väga lihtne näha, kas midagi on muutunud. Näiteks oleku muutus reageerimiskomponendis.
Millised on muutumatuse puudused?
Muutmatute klasside ainus tõeline puudus on et nad nõuavad iga erineva väärtuse jaoks eraldi objekti. Nende objektide loomine võib olla kulukas, eriti kui need on suured. Oletame näiteks, et teil on miljonibitine BigInteger ja soovite muuta selle madalat järku bitti:BigInteger moby=…; moby=moby.