Objek tidak berubah boleh berguna dalam aplikasi berbilang benang. Berbilang benang boleh bertindak ke atas data yang diwakili oleh objek tidak boleh ubah tanpa mempedulikan data diubah oleh utas lain. Oleh itu, objek tidak boleh ubah dianggap lebih selamat untuk benang daripada objek boleh ubah.
Apakah gunanya objek tidak berubah?
Pergantungan maksimum pada objek tidak berubah diterima secara meluas sebagai strategi yang baik untuk mencipta kod yang mudah dan boleh dipercayai. Objek tidak berubah amat berguna dalam aplikasi serentak. Memandangkan mereka tidak boleh menukar keadaan, mereka tidak boleh rosak oleh gangguan benang atau diperhatikan dalam keadaan tidak konsisten.
Benda manakah yang patut dipanggil tidak boleh diubah?
Objek tidak berubah ialah semata-mata objek yang keadaannya (data objek) tidak boleh berubah selepas pembinaan. Contoh objek tidak berubah daripada JDK termasuk String dan Integer. Objek tidak boleh ubah sangat memudahkan atur cara anda, kerana ia: mudah untuk dibina, diuji dan digunakan.
Bagaimanakah anda melaksanakan objek tidak berubah?
Untuk mencipta objek tidak berubah, anda perlu mengikut beberapa peraturan mudah:
- Jangan tambahkan sebarang kaedah penetap.
- Isytiharkan semua medan muktamad dan peribadi.
- Jika medan ialah objek boleh ubah, buat salinan pertahanannya untuk kaedah pengambil.
- Jika objek boleh ubah dihantar kepada pembina mesti diberikan kepada medan buat salinan pertahanannya.
Di manakah kitagunakan kelas tidak berubah dalam Java?
Kelas tidak berubah menjadikan pengaturcaraan serentak lebih mudah. Kelas tidak berubah memastikan bahawa nilai tidak diubah di tengah-tengah operasi tanpa menggunakan blok disegerakkan. Dengan mengelakkan sekatan penyegerakan, anda mengelakkan kebuntuan.