Wstrzykiwanie zależności
Kurs C# · Wyjaśnienie, przykłady, oczekiwany wynik i ćwiczenie.
Interfejs pozwala tworzyć klasy zależne od kontraktu, a nie konkretnej implementacji.
Poznać zagadnienie „Wstrzykiwanie zależności”, zrozumieć przykład i umieć zastosować podobny zapis we własnym programie.
Wyjaśnienie krok po kroku
Zależność przekazywana w konstruktorze może być łatwo zastąpiona w testach.
Najpierw przeanalizuj kod bez uruchamiania. Zwróć uwagę, jakie dane wykorzystuje program, co z nimi robi i skąd bierze się wynik pokazany pod przykładem.
Praktyczny przykład
Gdzie zobaczysz efekt: Konsola projektu .NET
Gdzie wkleić kod? Deklaracje klas i interfejsów umieść w osobnym pliku lub poza instrukcjami najwyższego poziomu; instrukcje wykonawcze uruchom w programie.
interface IMessage { string Get(); }
class Hello : IMessage { public string Get() => "Cześć"; }
class Service(IMessage message) { public string Run() => message.Get(); }
// Console.WriteLine(new Service(new Hello()).Run());
Przeczytaj kod linijka po linijce
interface IMessage { string Get(); }Definiujemy nowy typ obiektu lub umowę dotyczącą jego zachowania.class Hello : IMessage { public string Get() => "Cześć"; }Definiujemy nowy typ obiektu lub umowę dotyczącą jego zachowania.class Service(IMessage message) { public string Run() => message.Get(); }Definiujemy funkcję lub metodę, której można użyć później.
Cześć (po odkomentowaniu wywołania)
Jak utrwalić tę umiejętność?
Przepisz kod samodzielnie. Następnie zmień jedną wartość lub jedną instrukcję i spróbuj przewidzieć efekt. Dopiero potem uruchom zmienioną wersję. Jeśli wynik jest inny niż oczekiwany, porównaj kolejne linie.
Spróbuj samodzielnie
Utwórz alternatywną klasę implementującą IMessage.
Jeśli rozumiesz przykład, oznacz lekcję jako ukończoną i przejdź dalej.