05.02.2013 Aufrufe

Konzeption und modellgetriebene Entwicklung eines ...

Konzeption und modellgetriebene Entwicklung eines ...

Konzeption und modellgetriebene Entwicklung eines ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

62 KAPITEL 5. ENTWURF UND IMPLEMENTIERUNG<br />

der DAO-Klasse der Gegenstand Entität realisiert wird, braucht weder die<br />

DAO-Klasse der Bauglied-Entität noch die DAO-Klassen der von ihr abgeleiteten<br />

Klassen eine Methode zum Suchen.<br />

Die Implementierung des DAO der Klasse Ort überschreibt die Methoden<br />

zum Entfernen <strong>eines</strong> Ortes, zusätzlich zu den Methoden zur Transformation<br />

zwischen Entität <strong>und</strong> ValueObject. Der Gr<strong>und</strong> hierfür ist, dass die Löschung<br />

<strong>eines</strong> Ortes auch die Löschung der über ihn gespeicherten Gegenstände (über<br />

den Fremdschlüssel auf Datenbankebene) nach sich zieht. Die Koordinaten<br />

zu den Gegenständen bleiben allerdings erhalten. Deshalb müssen die Gegenstände<br />

<strong>eines</strong> Ortes explizit vor dem Ort gelöscht werden, da dann die Anwendungslogik<br />

wegen der Elternbeziehung im Modell die Koordinaten löscht.<br />

5.6 ValueObjects<br />

Ein ValueObject ist eine Klasse, die für die Business-Schicht aus den DomainObjects<br />

abgeleitet wird, sie stellen eine Fassade der DomainObjects dar <strong>und</strong><br />

bieten keine Methoden an, außer dem Zugriff auf die in ihnen gespeicherten<br />

Daten. Diese ValueObjects werden der Präsentationsschicht zur Verfügung<br />

gestellt. Die Attribute der ValueObjects entsprechen weitestgehend den Attributen<br />

der Entitäten, die die ValueObjects repräsentieren. Es gibt jedoch<br />

Ausnahmen, Fälle in denen eine Abweichung empfehlenswert ist. Zusätzlich<br />

sollte ein ValueObject das Attribut id oder ein anderes eindeutiges Attribut<br />

besitzen, damit das ValueObject auch wieder in ein DomainObject transformiert<br />

werden kann. Wenn die Werte des ValueObjects in einer Maske<br />

verändert werden <strong>und</strong> die Änderungen gespeichert werden sollen, muss eine<br />

solche Transformation möglich sein.<br />

Deshalb besitzt das Attribut ”F<strong>und</strong>punktnummer” in den ValueObject-Klassen<br />

für die Ort-Klasse die beiden oben genannten Eigenschaften. Die ”F<strong>und</strong>punktnummer”<br />

ist zusammengesetzt aus einem Präfix, bestehend aus einem<br />

Großbuchstaben <strong>und</strong> dem Suffix, einer Zahl. Sie werden in der Entität separat<br />

gespeichert, aber in den ValueObjects in einem Attribut zusammengefasst<br />

(siehe 5.4). Die F<strong>und</strong>punktnummer muss den regulären Ausdruck ([A-Z]+[0-<br />

9]+) erfüllen, damit eine eindeutige Rücktransformation in Präfix <strong>und</strong> Suffix<br />

durchgeführt werden kann.<br />

Es wird für jede Entity-Klasse mindestens eine ValueObject-Klasse eingeführt.<br />

Die ValueObject-Klasse hat alle Attribute der Entity-Klasse, wobei die Attribute<br />

auf die Darstellung auf einer Webseite hin verändert werden. Hinzu

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!