A megváltoztathatatlan objektumok hasznosak lehetnek többszálú alkalmazásokban. Több szál is tud működni a megváltoztathatatlan objektumok által képviselt adatokon anélkül, hogy aggódna attól, hogy más szálak megváltoztatják az adatokat. A megváltoztathatatlan objektumok ezért szálbiztosabbnak tekinthetők, mint a változtatható objektumok.
Mi értelme van a megváltoztathatatlan objektumoknak?
A megváltoztathatatlan objektumokra való maximális támaszkodás széles körben elfogadott jó stratégia az egyszerű, megbízható kód létrehozásához. A megváltoztathatatlan objektumok különösen hasznosak egyidejű alkalmazásokban. Mivel nem változtathatják meg az állapotukat, nem sérthetik meg őket szál interferencia, vagy nem figyelhetők meg inkonzisztens állapotban.
Mely objektumokat nevezzük megváltoztathatatlannak?
A megváltoztathatatlan objektumok egyszerűen olyan objektumok, amelyek állapota (az objektum adatai) nem változhatnak a felépítés után. A JDK-ból származó megváltoztathatatlan objektumok például a String és az Integer. A megváltoztathatatlan objektumok nagymértékben leegyszerűsítik a programot, mivel: egyszerűen megszerkeszthetők, tesztelhetők és használhatók.
Hogyan valósít meg egy megváltoztathatatlan objektumot?
Megváltozhatatlan objektum létrehozásához be kell tartania néhány egyszerű szabályt:
- Ne adjon hozzá beállító módszert.
- Minden mező véglegesnek és privátnak nyilvánítása.
- Ha egy mező változtatható objektum, készítsen róla védekező másolatokat a getter metódusokhoz.
- Ha a konstruktornak átadott módosítható objektumot hozzá kell rendelni egy mezőhöz, hozzon létre egy védekező másolatot.
Hol vagyunkmegváltoztathatatlan osztályt használ a Java-ban?
A megváltoztathatatlan osztályok egyszerűsítik a párhuzamos programozást. A megváltoztathatatlan osztályok biztosítják, hogy az értékek ne változzanak meg egy művelet közepén szinkronizált blokkok használata nélkül. A szinkronizálási blokkok elkerülésével elkerülheti a holtpontokat.