Sobes.tech
Junior — Middle

Կարող եք բացատրել SOLID սկզբունքներում D տառի նշանակությունը:

sobes.tech AI

Պատասխան AI-ից

SOLID սկզբունքների D տառը նշանակում է Dependency Inversion Principle (Ավելի բարձր մակարդակի մոդուլները չպետք է կախված լինեն ցածր մակարդակի մոդուլներից, երկուսն էլ պետք է կախված լինեն աբստրակցիաներից):

Այս սկզբունքի էությունը:

  • Բարձր մակարդակի մոդուլները չպետք է կախված լինեն ցածր մակարդակի մոդուլներից: Երկուսն էլ պետք է կախված լինեն աբստրակցիաներից:
  • Աբստրակցիաները չպետք է կախված լինեն մանրամասներից: Մանրամասները պետք է կախված լինեն աբստրակցիաներից:

Այս սկզբունքը օգնում է նվազեցնել կոդի կապակցվածությունը և բարձրացնել նրա ճկունությունը և թեստավորելիությունը:

Օրինակ Dart/Flutter-ում:

abstract class Database {
  void saveData(String data);
}

class SqlDatabase implements Database {
  @override
  void saveData(String data) {
    print('SQL տվյալների բազայում տվյալների պահպանում: $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-ին փոփոխելու: