Junior — Middle
Tizim loyihalashtirishda bog'liqliklarni inversiya qilish prinsipini ta'minlaydigan yondashuvlar va texnikalar qanday?
sobes.tech AI
AIdan javob
Tizim loyihasida bogʻlanishlarning teskari prinsipi (Dependency Inversion Principle) quyidagi yondashuvlar va texnikalar bilan erishiladi:
- Anʼanaviy amalga oshirishlar o‘rniga abstraktsiyalarni ishlatish. Sinflar, aniq sinflardan emas, interfeyslar yoki abstrakt sinflardan foydalanishi kerak.
- Bogʻlanishlarni injektsiya qilish (Dependency Injection). Bogʻlanishlar sinfga tashqaridan (konstruktor, xususiyatlar yoki metodlar orqali) uzatiladi va ichida yaratilmaydi.
- Boshqaruvni teskari qilish (IoC). Ob’ektlarni yaratish va ulash ustidan nazorat tashqi konteyner yoki ramka tomonidan amalga oshiriladi.
C# misoli bilan bogʻlanishlarni injektsiya qilish:
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; // bogʻlanish tashqaridan uzatiladi
}
public void CreateUser(string name)
{
// foydalanuvchi yaratish logikasi
_logger.Log($"Foydalanuvchi {name} yaratildi.");
}
}
Bu yondashuv test qilishni, kengaytirishni va kodni qo‘llab-quvvatlashni osonlashtiradi.