ZAWWW-2st1.2-w12.tresc-1.0-Slajd9

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Inversion of Control - przykład (1/3)

Inversion of Control - przykład (1/3)


Kolejne slajdy przedstawiają przykład działania kontenera Spring i zasady wstrzykiwania zależności. Pierwszy slajd przedstawia fragment tradycyjnie napisanego kodu. Interesuje nas program potrafiący odczytać bazę danych o filmach i wyświetlić listę filmów wyreżyserowanych przez danego reżysera. W tym celu tworzymy interfejs MovieFinder z metodą findAll() zwracającą kolekcję java.util.List (1). Następnie, tworzymy klasę MovieLister, której składową jest komponent potrafiący odczytywać bazę danych filmów (2). Przyjmijmy, że dysponujemy już klasą IMDBFinder, która implementuje interfejs MovieFinder i potrafi się połączyć z bazą filmów udostępnianych przez serwis www.imdb.com. W tradycyjnym podejściu komponent IMDBFinder zostanie połączony z klasą MovieLister jawnie w kodzie aplikacji, np. w konstruktorze klasy MovieLister (3). Takie rozwiązanie powoduje, że klasa MovieLister staje się trwale powiązana z klasą IMDBFinder i zmiana mechanizmu wyszukiwania filmów (np. na komponent odczytujący listę filmów z lokalnej bazy danych) wymaga ingerencji w kod aplikacji. Wyszukanie filmów wyreżyserowanych przez danego reżysera może polegać na wczytaniu listy wszystkich filmów za pomocą metody findAll() z interfejsu MovieFinder, a następnie przetworzeniu listy wyników i wybraniu filmów danego reżysera (4).


<< Poprzedni slajd | Spis treści | Następny slajd >>