Middle
Чаро дар амал объектҳои тағйирнопазир заруранд?
sobes.tech AI
Ҷавоб аз AI
- Беҳатарии сӯзишворӣ: Объектҳои тағйирнопазир табиатан бехатар барои сӯзишворӣ мебошанд, зеро ҳолати онҳо пас аз эҷод кардан тағйир намеёбад. Ин барномасозии ҳамзамонро содда мекунад ва ҳолатҳои рақобатро пешгирӣ мекунад.
- Осонӣ: Ҳолати объект доимӣ аст, ки мураккабии системаро кам мекунад ва фаҳмидани рафтори онро осонтар мекунад.
- Кэшгирӣ: Аз он ҷиҳат ки объект тағйир намеёбад, коди hash-и он доим мемонад. Ин объектҳои тағйирнопазирро ҳамчун калидҳо дар
HashMapё унсурҳо дарHashSetбарои беҳтар кардани самаранокии амалиётҳо истифода мебарад. - Бехатарӣ: Вобаста аз баргардонидани объектҳои тағйирнопазир аз методҳо, метавон кафолат дод, ки ҳолати дохилӣ тасодуфӣ ё бадхоҳона тағйир намеёбад.
- Истифодаи такрорӣ: Объектҳои тағйирнопазир метавонанд бехатарона байни қисмҳои гуногуни барнома тақсим шаванд, бе ниёз ба нусхаҳо, ки хотирасозиро сарфа мекунад.
Маслиҳат барои синфи тағйирнопазир дар Java:
// Синфи тағйирнопазир
public final class Point {
private final int x;
private final int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
// Ҳеҷ setters нест
// Ҳеҷ методе, ки ҳолатро тағйир диҳад
}