Textteil an neue Architektur angepasst
This commit is contained in:
parent
1652fe3bc3
commit
880c3029da
1 changed files with 7 additions and 12 deletions
|
@ -41,31 +41,26 @@ Die vorliegende Software ist in Java geschrieben und arbeitet stark mit Objektor
|
||||||
Der gesamte Code der Anwendung befindet sich im Paket \fChsmw.jotto5.beleg\fR. Direkt in diesem Paket befindet sich die Main-Klasse mit dem Einstiegspunkt. Darunter befindet sich das Paket \fCviews\fR, in dem die Klassen für die einzelnen Views liegen, und das Paket \fCdata\fR, in dem alle Klassen implementiert sind die sich mit Datenverwaltung und Abfrage beschäftigen, zum Beispiel das Model.
|
Der gesamte Code der Anwendung befindet sich im Paket \fChsmw.jotto5.beleg\fR. Direkt in diesem Paket befindet sich die Main-Klasse mit dem Einstiegspunkt. Darunter befindet sich das Paket \fCviews\fR, in dem die Klassen für die einzelnen Views liegen, und das Paket \fCdata\fR, in dem alle Klassen implementiert sind die sich mit Datenverwaltung und Abfrage beschäftigen, zum Beispiel das Model.
|
||||||
|
|
||||||
.H3 Datenverwaltung
|
.H3 Datenverwaltung
|
||||||
Die zentrale Klasse der Datenverwaltung ist die Klasse \fCDataObject\fR. Sie stellt die Superklasse für alle im Model verwalteten Objekte dar. Ihre Implementation ist sehr einfach gehalten.
|
Die zentrale Klasse der Datenverwaltung ist die abstrakte Klasse \fCDataObject\fR. Sie stellt die Superklasse für alle im Model verwalteten Objekte dar. Ihre Implementation ist bewusst sehr einfach gehalten.
|
||||||
.sp
|
.sp
|
||||||
.TS
|
.TS
|
||||||
tab(;) box center;
|
box center;
|
||||||
cb
|
cb
|
||||||
-
|
-
|
||||||
l
|
l
|
||||||
l
|
l
|
||||||
l
|
|
||||||
-
|
-
|
||||||
l.
|
l.
|
||||||
DataObject
|
DataObject
|
||||||
# model: Model
|
+ displayName: String
|
||||||
# uid: String
|
+ uid: String
|
||||||
# displayName: String
|
|
||||||
# DataObject(String uid, String displayName)
|
# DataObject(String uid, String displayName)
|
||||||
# setModel(Model): void
|
|
||||||
+ getModel(): Model
|
|
||||||
+ getDisplayName(): String
|
|
||||||
+ setDisplayName(String displayName): void
|
|
||||||
.TE
|
.TE
|
||||||
.sp
|
.sp
|
||||||
Das DataObject behält selber eine Referenz auf das Model zu dem es gehört. Die UID ist ein String, welcher eine eineindeutige Zeichenkette für das Objekt enthält. Strukturiert werden kann sie als Hierarchie mit / als Trennzeichen, zum Beispiel \fCstudents/jotto5\fR. Das ist nicht benötigt, aber einige Views verwenden diese Syntax für eine etwas bessere Übersicht. Der DisplayName ist ein frei wählbarer String welcher einen menschenlesbare Namen für das Objekt enthält, im Fall einer Studierenden Person zum Beispiel eine Zeichenkette im Format \fCVorname, Nachname\fR.
|
Die UID ist ein String, welcher eine eineindeutige Zeichenkette für das Objekt enthält. Strukturiert werden kann sie als Hierarchie mit / als Trennzeichen, zum Beispiel \fCstudents/jotto5\fR. Das ist nicht benötigt, aber einige Views verwenden diese Syntax für eine etwas bessere Übersicht. Der DisplayName ist ein frei wählbarer String welcher einen menschenlesbare Namen für das Objekt enthält, im Fall einer Studierenden Person zum Beispiel eine Zeichenkette im Format \fCVorname, Nachname\fR.
|
||||||
|
|
||||||
Die Klasse enthält einen Konstruktor der die UID und den Anzeigenamen initialisiert. Dieser ist bewusst protected gehalten, da die DataObject-Klasse selber nicht instanziiert werden soll und nur als Superklasse dient. Der Setter für das Model ist nur aus dem Model zu verwenden und daher protected.
|
Die Klasse enthält einen Konstruktor der die UID und den Anzeigenamen initialisiert. Dieser ist bewusst protected gehalten, da die DataObject-Klasse abstrakt ist und nur als Superklasse dient. Setter und Getter sind nicht vorgesehen, da die Felder public sein müssen.
|
||||||
|
.TODO Referenz auf Formular-Annotation-System!\"
|
||||||
|
|
||||||
Von dem DataObject erben nun mehrere Klassen, welche spezifischere Felder und Methoden beinhalten können, zum Beispiel die Klasse \fCStudent\fR oder die Klasse \fCGroup\fR. Das hat den Vorteil dass das Model selber sich nur um die Verwaltung einer Liste von DataObjects kümmern muss ohne die genaue Semantik zu kennen oder eine Trennung zwischen verschiedenen Typen machen zu müssen. Für das Verwenden der Objekte werden dann Javas Möglichkeiten der Reflexion bzw. Introspektion benutzt.
|
Von dem DataObject erben nun mehrere Klassen, welche spezifischere Felder und Methoden beinhalten können, zum Beispiel die Klasse \fCStudent\fR oder die Klasse \fCGroup\fR. Das hat den Vorteil dass das Model selber sich nur um die Verwaltung einer Liste von DataObjects kümmern muss ohne die genaue Semantik zu kennen oder eine Trennung zwischen verschiedenen Typen machen zu müssen. Für das Verwenden der Objekte werden dann Javas Möglichkeiten der Reflexion bzw. Introspektion benutzt.
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue