Junior — Middle
Программалык коддо көзкарандоздуулардын киргизилиши принцибин жана анын артыкчылыктарын түшүндүрүңүз.
sobes.tech AI
AIден жооп
Тамак-ашыктыкка көз каранды болууну (Dependency Injection, DI) — бул долбоорлоо үлгүсү, анда объект өзүнүн көз карандылыгын сырттан алат, өзү түзбөйт. Бул коддун модулдуулугун жана тестирлөө мүмкүнчүлүгүн жогорулатат.
DIнин артыкчылыктары:
- Тестти жеңилдетет — көз карандылыктарды оңой эле mock же stub менен алмаштыруу мүмкүн.
- Ашыкча байланышы жок — класстар конкреттүү ишке ашырылыштарга эмес, тек гана абстракцияларга көз каранды.
- Ийкемдүүлүктү жогорулатат — көз карандылыктардын ишке ашырылыштарын өзгөртүү оңой, колдонуучу кодун өзгөртпөстөн.
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("Alice");