Nepromjenjivi objekti mogu biti korisni u višestrukim aplikacijama. Više niti može djelovati na podatke predstavljene nepromjenjivim objektima bez brige o podacima koje druge niti mijenjaju. Nepromjenjivi objekti se stoga smatraju sigurnijim niti od promjenjivih objekata.
Koja je svrha nepromjenjivih objekata?
Maksimalno oslanjanje na nepromjenjive objekte je široko prihvaćeno kao zdrava strategija za kreiranje jednostavnog, pouzdanog koda. Nepromjenjivi objekti su posebno korisni u istovremenim aplikacijama. Pošto ne mogu promijeniti stanje, ne mogu biti oštećeni interferencijom niti ili posmatrani u nekonzistentnom stanju.
Koje objekte treba nazvati nepromjenjivim?
Nepromjenjivi objekti su jednostavno objekti čije se stanje (podaci objekta) ne mogu promijeniti nakon izgradnje. Primjeri nepromjenjivih objekata iz JDK-a uključuju String i Integer. Nepromjenjivi objekti uvelike pojednostavljuju vaš program, jer su: jednostavni za konstruiranje, testiranje i korištenje.
Kako implementirati nepromjenjivi objekt?
Da kreirate nepromjenjivi objekt morate slijediti neka jednostavna pravila:
- Ne dodaj nijednu metodu postavljanja.
- Objavi sva polja konačnim i privatnim.
- Ako je polje promjenjivi objekt, kreirajte njegove odbrambene kopije za getter metode.
- Ako promjenjivi objekt proslijeđen konstruktoru mora biti dodijeljen polju, kreirajte njegovu odbrambenu kopiju.
Gdje smokoristiti nepromjenjivu klasu u Javi?
Nepromjenjive klase čine konkurentno programiranje lakšim. Nepromjenjive klase osiguravaju da se vrijednosti ne mijenjaju usred operacije bez korištenja sinkroniziranih blokova. Izbjegavanjem blokova sinhronizacije, izbjegavate zastoje.