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