Middle
Афзалиятҳои истифодаи объектҳои тағйирнопазир чист?
sobes.tech AI
Ҷавоб аз AI
Арзиши истифодаи объектҳои тағйирнопазир (immutable):
- Бехатарии дар муҳити бисёрсоҳавӣ: объектҳои тағйирнопазир пас аз сохтан тағйир дода намешаванд, бинобар ин метавон онҳоро дар муҳити бисёрсоҳавӣ бехатар истифода бурд бе ниёз ба ҳамоҳангсозии иловагӣ.
- Осонии фаҳмидан ва хато ёфтан: ҳолати объект мустаҳкам аст, ки ин корро осонтар мекунад ва фаҳмидани рафтори барномаро содда месозад.
- Пешгӯӣ: набудани таъсири тараф дар кор бо объектҳои тағйирнопазир имкон медиҳад, ки тест ва такмилро осонтар кунад.
- Кэш ва такрорӣ истифода кардан: объектҳои тағйирнопазир метавонанд бехатар кэш ва такрор истифода шаванд, ки метавонад самаранокии барномаро баланд бардорад.
Масалан дар Java:
public final class User {
private final String name;
private final int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() { return name; }
public int getAge() { return age; }
}
Ин синф User тағйирнопазир аст: майдонҳо final, ягон setter нест, ва ҳолати объект пас аз сохтан тағйир намеёбад.