\documentclass{bschlangaul-aufgabe} \begin{document} \bAufgabenMetadaten{ Titel = {Aufgabe 2}, Thematik = {Entwurfsmuster in UML-Diagramm erkennen}, Referenz = 66116-2016-F.T1-TA2-A2, RelativerPfad = Examen/66116/2016/03/Thema-1/Teilaufgabe-2/Aufgabe-2.tex, ZitatSchluessel = examen:66116:2016:03, BearbeitungsStand = mit Lösung, Korrektheit = unbekannt, Ueberprueft = {unbekannt}, Stichwoerter = {Klassendiagramm, Abstrakte Fabrik (Abstract Factory), Wiederholer (Iterator), Adapter, Kompositum (Composite), Klassenadapter, Objektadapter, Implementierung in Java}, EinzelpruefungsNr = 66116, Jahr = 2016, Monat = 03, ThemaNr = 1, TeilaufgabeNr = 2, AufgabeNr = 2, } \includegraphics[width=\linewidth]{\bPfadAufgaben/Examen/66116/2016/03/Thema-1/Teilaufgabe-2/UML-Examen_2016-03.png} \begin{enumerate} %% % 1. %% \item Kennzeichnen\footcite{examen:66116:2016:03} Sie im folgenden Klassendiagramm\index{Klassendiagramm} die Entwurfsmuster \emph{„Abstrakte Fabrik“}\index{Abstrakte Fabrik (Abstract Factory)}, \emph{„Iterator“}\index{Wiederholer (Iterator)}, \emph{„Adapter “}\index{Adapter} und \emph{„Kompositum“}\index{Kompositum (Composite)}. Geben Sie die jeweils beteiligten Klassen und deren Zuständigkeit im entsprechenden Muster an. \footcite{sosy:ab:6} \begin{bAntwort} \begin{description} %% % %% \item[Iterator] \strut \begin{description} \item[DocumentTraverser (interface)] Schnittstelle zur Traversierung und zum Zugriff auf Dokumente \item[Document] implementiert die Schnittstelle \end{description} %% % %% \item[Kompositum] \strut \begin{description} \item[AbstractDocument] abstrakte Basisklasse, die gemeinsames Verhalten der beteiligten Klassen definiert \item[Document] enthält wiederum weitere Documente bzw. DocumentEntities und Images \item[DocumentEntity, Image] primitive Unterklassen, besitzen keine Kindobjekte \end{description} %% % %% \item[Adapter (Objektadapter)] \strut \begin{description} \item[Banking (interface)] vom Client (hier Application) verwendete Schnittstelle \item[HBCTBanking] passt Schnittstelle der unpassenden Klasse an Zielschnittstelle (Banking) an \item[DB (interface)] anzupassende Schnittstelle \end{description} %% % %% \item[abstrakte Fabrik] \strut \begin{description} \item[JobCreator (interface)] abstrakte Fabrik \item[Job (abstrakt) mit Unterklassen RecordFetch und Transfer] abstraktes Produkt \item[Job (konkret) mit Unterklassen] konkretes Produkt \end{description} \end{description} \end{bAntwort} %% % 2. %% \item \begin{enumerate} %% % (a) %% \item Beschreiben Sie die Funktionsweise der folgenden Entwurfsmuster und geben Sie ein passendes UML-Diagramm an. \begin{itemize} \item Dekorierer \item Klassenadapter \item Objektadapter \end{itemize} \begin{bAntwort} \bMetaNochKeineLoesung \end{bAntwort} %% % (b) %% \item Erklären Sie mit maximal zwei Sätzen den Unterschied zwischen Klassenadapter\index{Klassenadapter} und Objektadapter\index{Objektadapter}. \begin{bAntwort} \bMetaNochKeineLoesung \end{bAntwort} \end{enumerate} %% % 3. %% \item Implementieren Sie einen Stapel in der Programmiersprache Java.\index{Implementierung in Java} Nutzen Sie dazu ein Array mit fester Größe. Auf eine Überlaufprüfung darf verzichtet werden. Implementieren Sie in der Klasse das Iterator Entwurfsmuster, um auf die Inhalte zuzugreifen, sowie eine Funktion zum Hinzufügen von Elementen. Als Typ für den Stapel kann zur Vereinfachung ein Integertyp verwendet werden. \begin{bAntwort} \bMetaNochKeineLoesung \end{bAntwort} \end{enumerate} \end{document}