Sobes.tech
Back to questions
Junior — Middle
100

Можете объяснить значение буквы D в принципах SOLID?

Companies where asked
AndersenAndersen
Верме

Answer from AI

sobes.tech AI

Буква D в принципах SOLID означает Dependency Inversion Principle (Принцип инверсии зависимостей).

Суть этого принципа:

  • Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций.
  • Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

Это помогает снизить связанность кода и повысить его гибкость и тестируемость.

Пример на Dart/Flutter:

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

class SqlDatabase implements Database {
  @override
  void saveData(String data) {
    print('Saving data to 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('Example data');
}

Здесь DataManager зависит не от конкретной реализации базы данных, а от абстракции Database. Это позволяет легко менять реализацию базы без изменения DataManager.