Dependency Injection (Wstrzykiwanie Zależności) jest istotnym elementem w programowaniu obiektowym. Jest to technika, która która polega na tym aby zależność wprowadzić do obiektu z zewnątrz na przykład poprzez konstruktor danej klasy. A po co taki zabieg? Ponieważ pomaga nam w tworzeniu bardziej elastycznych, testowalnych i zrozumiałych aplikacji.
Po co używać Dependency Injection?
- Separacja Odpowiedzialności: Wstrzykiwanie zależności pomaga nam oddzielić odpowiedzialność za tworzenie obiektów od ich użycia. Obiekt nie musi znać szczegółów implementacyjnych swoich zależności, po prostu dostaje je gotowe.
- Testowalność: Wstrzykiwanie zależności ułatwia testowanie jednostkowe. Możemy zamockować potrzebne obiekty na przykład DbContext a następnie go wstrzyknąć do testowanej klasy.
- Łatwość Zmian i Rozszerzalność: Poprzez Dependency Injection, aplikacje stają się bardziej elastyczne. Nie trzeba zmieniać kodu w kilku miejscach wystarczy odpowiednio dostosować lub podmienić wstrzykiwany obiekt.
Sposoby implementacji w C#
Konstruktor
public class OrderService
{
private readonly IOrderRepository _orderRepository;
public OrderService(IOrderRepository orderRepository)
{
_orderRepository = orderRepository;
}
// Metody OrderService...
}
Właściwości
public class OrderService
{
public IOrderRepository OrderRepository { get; set; }
// Metody OrderService...
}
Dedykowane metody
public class OrderService
{
public void SetOrderRepository(IOrderRepository orderRepository)
{
// Ustawienie zależności
}
// Metody OrderService...
}
I na tym właśnie polega Dependency Injection.
To tyle, dzięki. Mam nadzieję, że w jakiś sposób było to dla Ciebie przydatne.
Jeśli masz jakieś pytania pytaj śmiało. Możesz odwiedzić mojego instagrama o tutaj. Pokazuje tam tego co aktualnie się uczę i różne inne rzeczy. Zapraszam!