Atsakymas yra tas, kad nekintantys tipai yra saugūs nuo klaidų, lengviau suprantami ir labiau pasirengę pokyčiams. Dėl kintamumo sunkiau suprasti, ką daro jūsų programa, ir daug sunkiau vykdyti sutartis.
Ar keičiami objektai yra blogi?
Galiausiai kintami objektai yra žudikai lygiagrečiose situacijose. Kai pasiekiate kintamą objektą iš atskirų gijų, turite užrakinti. Tai sumažina pralaidumą ir labai apsunkina kodo priežiūrą.
Kodėl bendrinama būsena bloga?
Bendrinama keičiama būsena veikia taip: Jei dvi ar daugiau šalių gali pakeisti tuos pačius duomenis (kintamuosius, objektus ir kt.). Ir jei jų gyvenimas sutampa. Tada kyla pavojus, kad vienos šalies pakeitimai neleis kitoms šalims tinkamai veikti.
Kodėl nekintamumas yra geras dalykas?
Be sumažėjusio atminties naudojimo, nekintamumas leidžia optimizuoti programą naudojant nuorodų ir verčių lygybę. Taip tikrai nesunku pastebėti, ar kas nors pasikeitė. Pavyzdžiui, reakcijos komponento būsenos pokytis.
Kokie yra nekintamumo trūkumai?
Vienintelis tikras nekintamų klasių trūkumas yra kad joms reikia atskiro objekto kiekvienai atskirai reikšmei. Šių objektų kūrimas gali kainuoti brangiai, ypač jei jie dideli. Pavyzdžiui, tarkime, kad turite milijono bitų BigInteger ir norite pakeisti jo žemos eilės bitą:BigInteger moby=…; moby=moby.