Sobes.tech
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.