Junior — Middle
Qanday qilib bog'liqliklarning teskari aylantirilishi kodni sinov qilish jarayonini osonlashtiradi?
sobes.tech AI
AIdan javob
Dependency Inversion Principle (DIP) allows high-level modules to be independent of low-level modules by depending on abstractions. This makes testing easier, as mocks or stubs can replace real dependencies without changing the code under test.
Example in C#:
public interface ILogger
{
void Log(string message);
}
public class FileLogger : ILogger
{
public void Log(string message) { /* write to file */ }
}
public class UserService
{
private readonly ILogger _logger;
public UserService(ILogger logger)
{
_logger = logger;
}
public void CreateUser(string name)
{
// user creation logic
_logger.Log($"User {name} created");
}
}
// In tests, you can pass a mock ILogger:
public class MockLogger : ILogger
{
public List<string> Messages = new List<string>();
public void Log(string message) => Messages.Add(message);
}
This way, tests are not dependent on real implementations and can verify logic in isolation.