Zpo-13-wyk-Slajd19
Wstrzykiwanie zależności przez interfejs
Wstrzykiwanie zależności poprzez interfejs w zasadzie nie polega na wstrzykiwaniu (co sugeruje pasywną rolę komponentu), a na aktywnym wyszukiwaniu komponentów w rejestrze kontenera. Jest to ciągle najpopularniejsza metoda rozwiązywania zależności, stosowana powszechnie m.in. w technologii J2EE. Przykładami jej zastosowań w praktyce są mechanizmy JNDI znany z języka Java oraz Naming Service stosowana w specyfikacji CORBA.
Metoda ta polega na implementacji w komponencie specjalnego interfejsu, stanowiącego znacznik wskazujący, że komponent ten wymaga pewnych zależności. Interfejs definiuje metodę posiadającą parametr, który jest obiektem kontekstu – wyszukiwarką innych obiektów. Komponent w momencie utworzenia otrzymuje od kontenera instancję kontekstu, którą może zapamiętać, a następnie wykorzystać do rozwiązania swoich zależności.
Poważną wadą tego rozwiązania jest silne powiązanie z konkretnym kontenerem, jakie wynika z konieczności implementacji przez komponent specyficznego interfejsu. W niektórych sytuacjach – np. gdy dostępny jest jedynie komponent w wersji binarnej – użycie tego sposobu rozwiązywania zależności jest niemożliwe.
Dlatego technika ta, mimo swojej popularności, powoli traci obecnie znaczenie na rzecz innych, prostszych metod, przede wszystkim wstrzykiwania zależności