Sobes.tech
Junior — Middle

Мо метавонед маънои ҳарфи D-ро дар принсипҳои SOLID шарҳ диҳед?

sobes.tech AI

Ҷавоб аз AI

Ҳарф D дар принсипҳои SOLID маънои Принсипи инверсияи вобастагиро дорад.

Маънои асосии ин принсип:

  • Модулҳои сатҳи болоӣ набояд аз модулҳои сатҳи поёнӣ вобаста бошанд. Ҳарду бояд аз абстраксияҳо вобаста бошанд.
  • Абстраксияҳо набояд аз тафсилот вобаста бошанд. Тафсилот бояд аз абстраксияҳо вобаста бошанд.

Ин кӯмак мекунад, ки пайвастагии коди кам шавад ва он чандирӣ ва қобилияти санҷишро зиёд кунад.

Масалан дар Dart/Flutter:

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

class SqlDatabase implements Database {
  @override
  void saveData(String data) {
    print('Захира кардани маълумот ба 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('Масалан маълумот');
}

Ин ҷо, DataManager аз иҷрои мушаххаси базаи додаҳо вобаста нест, балки аз абстраксияи Database. Ин имкон медиҳад, ки иҷрои базаи додаҳоро ба осонӣ иваз кардан мумкин аст, бе тағир додани DataManager.