\documentclass{bschlangaul-aufgabe} \bLadePakete{java} \begin{document} \bAufgabenMetadaten{ Titel = {Aufgabe}, Thematik = {MyParser}, Referenz = 66116-2021-F.T1-TA1-A7, RelativerPfad = Examen/66116/2021/03/Thema-1/Teilaufgabe-1/Aufgabe-7.tex, ZitatSchluessel = examen:66116:2021:03, BearbeitungsStand = mit Lösung, Korrektheit = unbekannt, Ueberprueft = {unbekannt}, Stichwoerter = {Einbringen von Abhängigkeiten (Dependency Injection)}, EinzelpruefungsNr = 66116, Jahr = 2021, Monat = 03, ThemaNr = 1, TeilaufgabeNr = 1, AufgabeNr = 7, } \let\j=\bJavaCode Lesen Sie die folgenden alternativen Codestücke. \index{Einbringen von Abhängigkeiten (Dependency Injection)} \footcite{examen:66116:2021:03} \begin{enumerate} \item \begin{bJavaAngabe} public class MyParser { private InputStream input; public MyParser(String filePath) { } } \end{bJavaAngabe} \item \begin{bJavaAngabe} public class MyParser { private InputStream input; public MyParser(InputStream stream) { } } \end{bJavaAngabe} \end{enumerate} Beide Codestücke zeigen die Initialisierung einer Klasse namens \j{MyParser}. Das zweite Codestück nutzt jedoch hierfür eine Technik namens Abhängigkeits-Injektion (Dependency Injection). \begin{enumerate} %% % a) %% \item Erklären Sie den Unterschied zwischen beiden Initialisierungen. Hinweis: Sie können diese Aufgabe auch lösen, falls Sie die Technik nicht kennen. \begin{bAntwort} Die Abhängigkeit von einer Instanz der Klasse InputStream wird erst bei der Initialisierung des Objekt übergeben. \end{bAntwort} %% % b) %% \item Benennen Sie einen Vorteil dieser Technik. \begin{bAntwort} Die Kopplung zwischen einer Klasse und ihrer Abhängigkeit wird verringert. \footcite{wiki:dependency-injection} \end{bAntwort} \end{enumerate} \end{document}