Junior — Middle
91
Объясните принцип внедрения зависимостей в программный код и его преимущества.
Сұралған компаниялар
Swiftfactory
Бренд Монитор
appfox
AI-дан жауап
sobes.tech AI
Dependency Injection (DI) — бұл объектінің тәуелділіктерін сырттан алатын жобалау үлгісі, ол өздігінен оларды құрып алмайды. Бұл модульдік пен кодтың тестілеуін жақсартады.
DI-дің артықшылықтары:
- Тестілеуді жеңілдету — тәуелділіктерді оңай имитациялар немесе стабтармен ауыстыруға болады.
- Бос байланыс — сыныптар нақты жүзеге асыруларға тәуелді емес, тек абстракциялармен жұмыс істейді.
- Икемділік — тәуелділіктердің жүзеге асуын өзгерту оңай, кодты өзгерту қажет емес.
C#-да конструктор арқылы тәуелділікті енгізу мысалы:
public interface ILogger
{
void Log(string message);
}
public class ConsoleLogger : ILogger
{
public void Log(string message) => Console.WriteLine(message);
}
public class UserService
{
private readonly ILogger _logger;
public UserService(ILogger logger) // тәуелділік конструктор арқылы енгізіледі
{
_logger = logger;
}
public void CreateUser(string name)
{
// қолданушыны жасау логикасы
_logger.Log($"Пайдаланушы {name} жасалды.");
}
}
// Қолдану:
var logger = new ConsoleLogger();
var service = new UserService(logger);
service.CreateUser("Алиса");