ZAWWW-2st1.2-w12.tresc-1.0-Slajd10
Inversion of Control - przykład (2/3)
W przypadku wykorzystania mechanizmu wstrzykiwania zależności ten sam kod przyjmuje postać pokazaną na slajdzie. W pierwszej kolejności tworzymy interfejs MovieFinder zawierający metodę findAll() (1). Następnie, tworzymy klasę IMDBFinder implementującą interfejs MovieFinder (2). Istotne jest, że klasa IMDBFinder eksponuje wszystkie swoje składowe za pomocą metod setter. Dalej, budujemy klasę MovieLister zawierającą składową finder, która implementuje interfejs MovieFinder (3). Proszę zauważyć, że w przeciwieństwie do poprzedniego przykładu, w architekturze Spring nie wiążemy jawnie klasy IMDBFinder z klasą MovieLister. Klasa MovieLister również eksponuje wszystkie swoje składowe na zewnątrz w postaci metod setter. Aplikacja polega na kontenerze IoC, który w odpowiedniej chwili, na podstawie pliku konfiguracyjnego, utworzy nowe obiekty i powiąże obiekt klasy IMDBFinder z obiektem klasy MovieLister. Wyszukanie filmów wyreżyserowanych przez danego reżysera odbywa się identycznie jak na poprzednim slajdzie (4). Uwaga: powyższy kod musi być umieszczony w ramach pakietu.