Junior — Middle
Ar galite paaiškinti raidės D reikšmę SOLID principuose?
sobes.tech AI
Atsakymas iš AI
SOLID principo D raidė reiškia Dependency Inversion Principle (Priklausomybių inversijos principas).
Šio principo esmė:
- Aukšto lygio moduliai neturi priklausyti nuo žemo lygio modulių. Abu turi priklausyti nuo abstrakcijų.
- Abstrakcijos neturi priklausyti nuo detalių. Detalės turi priklausyti nuo abstrakcijų.
Tai padeda sumažinti kodo sujungimą ir padidinti jo lankstumą bei testuojamumą.
Pavyzdys Dart/Flutter:
abstract class Database {
void saveData(String data);
}
class SqlDatabase implements Database {
@override
void saveData(String data) {
print('Duomenų išsaugojimas 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('Pavyzdiniai duomenys');
}
Čia DataManager nepriklauso nuo konkrečios duomenų bazės realizacijos, o priklauso nuo abstrakcijos Database. Tai leidžia lengvai keisti duomenų bazės įgyvendinimą be DataManager keitimo.