D — Dependency Inversion Principle(Принцип инверсии зависимостей)
// Принцип инверсии зависимостей (DIP)
// Пример: использование фреймворков внедрения зависимостей или создание
фиктивных объектов
public interface IDatabase
{
void SaveData(string data);
}
public class Database : IDatabase
{
public void SaveData(string data)
{
// Реализация для сохранения данных в базу данных
}
}
public class MockDatabase : IDatabase
{
public void SaveData(string data)
{
// Макетная реализация для тестирования
}
}
public class DataProcessor
{
private readonly IDatabase _database;
public DataProcessor(IDatabase database)
{
_database = database;
}
public void ProcessData(string data)
{
// Обработка данных...
_database.SaveData(data);
}
}
public class DataProcessorTest
{
[Test]
public void DataIsSavedToDatabase()
{
IDatabase mockDatabase = new MockDatabase();
DataProcessor dataProcessor = new DataProcessor(mockDatabase);
dataProcessor.ProcessData("Test data");
// Проверка утверждения...
}
}Last updated