Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ ასო D მნიშვნელობა SOLID-ის პრინციპებში?

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-ის შეცვლის გარეშე.