07.01.2013 Aufrufe

Konzeption und Implementierung eines ... - Stephan, Daniel

Konzeption und Implementierung eines ... - Stephan, Daniel

Konzeption und Implementierung eines ... - Stephan, Daniel

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

75 6.3. DATA ACCESS COMMANDS<br />

ändern zu können, ohne dass die gesamte Anwendung davon beeinträchtigt<br />

wird. Daher führt man eine Abstraktionsschicht ein, die den Datenzugriff von<br />

anderen Teilen der Anwendung abschottet.<br />

Diese Schicht besteht hier aus einer Reihe von Zugriffsobjekten. Jedes dieser<br />

Objekte bietet die Methoden an, die die Anwendung im Rahmen ihres Ablaufs<br />

benötigt, <strong>und</strong> implementiert sie - spezifisch für eine ausgewählte Technologie.<br />

Die hier verwendete Technologie wird durch Hibernate bereitgestellt (ein Open-<br />

Source Projekt, es handelt sich dabei um einen objektrelationalen Mapper, kurz<br />

ORM, der eine objektorientierte Schnittstelle für relationale Datenbanken bie-<br />

tet).<br />

Dies sei am Bespiel des DAOs für das Cluster Objekt dargestellt (in S. 76<br />

<strong>und</strong> S. 77 zu sehen). Zentral für die Abstraktion ist die Trennung der Imple-<br />

mentation (ClusterDaoImpl) von seiner Spezifikation (ClusterDao, erbend von<br />

Dao). Die Anwendung arbeitet ausschließlich mit der Schnittstelle ClusterDao.<br />

Die verwendete Implementation (in diesem Falle eben ClusterDaoImpl) lässt<br />

sich jedoch deklarativ (mit Hilfe einer XML-Datei für die Konfiguration des<br />

Systems) jederzeit ändern, ohne dass Anwendungscode davon betroffen ist. Das<br />

Basis-Interface Dao wurde eingeführt, nachdem klar wurde, dass viele Methoden<br />

in jedem DAO nötig werden würden. So sind diese Gemeinsamkeiten auch in der<br />

Struktur dokumentiert. Aus den selben Gründen wurde das Objekt DaoSupport<br />

eingeführt, das die Gemeinsamkeiten der verschiedenen DAOs für Hibernate im-<br />

plementiert.<br />

6.3. Data Access Commands<br />

Während der Entwicklung hat sich herauskristallisiert, dass in den prinzipiell<br />

eher groben Zugriffsmethoden der DAOs zu oft ähnliche Abläufe kodiert waren<br />

<strong>und</strong> die Wiederverwendung dieser Abläufe damit eher schlecht war. Das führte<br />

dazu, dass Code in einem DAO weitgehend optimiert wurde, weil die Notwen-<br />

digkeit dort akut war, während in einem anderen DAO ganz ähnlicher Code<br />

noch völlig unoptimiert vorlag. Die Code-Qualität war damit an einigen Stellen<br />

unnötigerweise niedriger als an anderen.<br />

Somit suchte der Autor nach Möglichkeiten, den Code ” mobiler“ <strong>und</strong> die<br />

Struktur der Datenzugriffsschicht feingranularer zu gestalten. Die Lösung er-<br />

schien in Form des Command Patterns (siehe dazu auch [GHJV96]). Eigentlich<br />

ist das Command Pattern für die Entwicklung von Benutzerschnittstellen ent-

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!