Sobes.tech
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.