Junior — Middle
Можете ли да обясните значението на буквата D в принципите SOLID?
sobes.tech AI
Отговор от AI
Буквата D в принципите SOLID означава Princip na инверсията на зависимостите.
Същността на този принцип:
- Модулите от по-високо ниво не трябва да зависят от модулите от по-ниско ниво. И двата трябва да зависят от абстракции.
- Абстракциите не трябва да зависят от детайлите. Детайлите трябва да зависят от абстракциите.
Това помага да се намали свързаността на кода и да се увеличи неговата гъвкавост и тестируемост.
Пример на 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.