Неизменяемите обекти могат да бъдат полезни в многонишкови приложения. Множество нишки могат да действат върху данни, представени от неизменни обекти, без да се притесняват, че данните се променят от други нишки. Следователно неизменяемите обекти се считат за по-безопасни за нишки от променливите обекти.
Какъв е смисълът на неизменяемите обекти?
Максималното разчитане на неизменни обекти е широко прието като здрава стратегия за създаване на прост, надежден код. Неизменяемите обекти са особено полезни в едновременни приложения. Тъй като не могат да променят състоянието си, те не могат да бъдат повредени от намеса в нишката или наблюдавани в непоследователно състояние.
Кои обекти трябва да се наричат неизменни?
Неизменяеми обекти са просто обекти, чието състояние (данните на обекта) не може да се промени след изграждането. Примерите за неизменни обекти от JDK включват String и Integer. Неизменяемите обекти значително опростяват вашата програма, тъй като те: са лесни за конструиране, тестване и използване.
Как прилагате неизменяем обект?
За да създадете неизменяем обект, трябва да следвате някои прости правила:
- Не добавяйте никакъв метод за настройка.
- Обявете всички полета окончателни и частни.
- Ако полето е променлив обект, създайте защитни копия от него за методи за получаване.
- Ако променлив обект, предаден на конструктора, трябва да бъде присвоен на поле, създайте защитно копие от него.
Къде смеизползвате неизменяем клас в Java?
Неизменяемите класове правят по-лесното програмиране. Неизменяемите класове гарантират, че стойностите не се променят в средата на операция без използване на синхронизирани блокове. Избягвайки блокове за синхронизация, вие избягвате блокиране.