diff --git a/doc/Architekturbeschreibung.tex b/doc/Architekturbeschreibung.tex index cca98a63a68c30ca847a824e3be77cf0290162bf..ecbb7855cb88d83a0bfeb30187b41de020e5ea08 100644 --- a/doc/Architekturbeschreibung.tex +++ b/doc/Architekturbeschreibung.tex @@ -1325,6 +1325,19 @@ anhand der Strategien erläutert werden.} \end{center} \end{figure} +\subsection{Persistenz} + +Das folgende Diagramm beschreibt unsere Persistenz. Persistenz Klassen werden dazu genutzt Daten in der Datenbank zu speichern, verändern und löschen. Zu jedem im Spiel vorkommenden Objekt, bzw zu der Klasse aus dem das Objekt stammt, muss es ein so genanntes Data Access Object geben (kurz DAO), um diese in der Datenbank verwalten zu können. +Da viele von den DAOs die gleichen Funktionen haben, werden sie alle von einer Oberklasse ObjectDAO erben. ObjectDAO hat in sich drin auch eine Variable, welche die Verbindung zur Datenbank herstellt. Hiermit können so auch alle anderen DAOs auf die Datenbank zugreifen. Da wir ORMLite benutzen, wird auch jede Unterklasse eine Variable des Typs Dao haben, welche zur Abspeicherung der Daten verwendet wird. Um Daten abzuspeichern, wird die Methode persist(T) benutzt. Um Daten zu löschen remove(T). Da manche Objekte in der Datenbank nicht verändert werden müssen (z.B. die Weltkarte), wird es keine Methode in der Oberklasse zum Updaten der Daten geben, sondern in jeder Unterklasse welche diese benötigt. + +\begin{figure}[h!] +\begin{center} + \includegraphics[width=\linewidth]{UML/PersistencePackage.pdf} + \caption{Persistenz} +\end{center} +\end{figure} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Datensicht} \label{sec:datensicht} @@ -1346,6 +1359,8 @@ Des weiteren kann jeder \textit{Room}, bis zu 4 Crew Mitglieder gleichzeitig beh \end{center} \end{figure} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Ausführungssicht} \label{sec:ausfuehrung}