Junior — Middle
Мо метавонед маънои ҳарфи D-ро дар принсипҳои SOLID шарҳ диҳед?
sobes.tech AI
Ҷавоб аз AI
Ҳарф D дар принсипҳои SOLID маънои Принсипи инверсияи вобастагиро дорад.
Маънои асосии ин принсип:
- Модулҳои сатҳи болоӣ набояд аз модулҳои сатҳи поёнӣ вобаста бошанд. Ҳарду бояд аз абстраксияҳо вобаста бошанд.
- Абстраксияҳо набояд аз тафсилот вобаста бошанд. Тафсилот бояд аз абстраксияҳо вобаста бошанд.
Ин кӯмак мекунад, ки пайвастагии коди кам шавад ва он чандирӣ ва қобилияти санҷишро зиёд кунад.
Масалан дар Dart/Flutter:
abstract class Database {
void saveData(String data);
}
class SqlDatabase implements Database {
@override
void saveData(String data) {
print('Захира кардани маълумот ба SQL DB: $data');
}
}
class DataManager {
final Database database;
DataManager(this.database);
void save(String data) {
database.saveData(data);
}
}
void main() {
Database db = SqlDatabase();
DataManager manager = DataManager(db);
manager.save('Масалан маълумот');
}
Ин ҷо, DataManager аз иҷрои мушаххаси базаи додаҳо вобаста нест, балки аз абстраксияи Database. Ин имкон медиҳад, ки иҷрои базаи додаҳоро ба осонӣ иваз кардан мумкин аст, бе тағир додани DataManager.