|
| XML Objekt-Baupläne |
|
Mit XML Objekt-Bauplänen (engl. Object Construction Plan, OCP) wird der
Zusammenbau von Objekt-Aggregaten spezifiziert. Sie stellen ein vielseitiges
Werkzeug zur Aggregation und Konfiguration moderner objekt- und
komponentenorientierter Software dar.
|
|
|
Eine typische mit OCPs gebaute Anwendung weist neben Java-Klassen eine
Vielzahl solcher Baupläne auf, die genau wie Java Source Code in einer
Package-Hierarchie angeordnet sind.
|
|
Die Einsatzmöglichkeiten sind vielfältig und reichen von einzelnen,
verbundenen Objekten bis hin zu Komponenten-Clustern, und umfassen
sowohl technische als auch fachliche Anwendungen.
|
|
Eine kurze Leistungsübersicht:
|
-
OCPs beschreiben die Anwendungsstruktur, die vorher in
Form von Code-Sequenzen in der gesamten Anwendung verteilt und
versteckt war
-
OCPs sind modular, können über Parameter beeinflußt werden und
sich wechselseitig beinhalten
-
OCPs sind gut gekapselt und legen nicht fest, welche
konkreten Klassen Verwendung finden
-
OCPs arbeiten vorzugsweise mit parametrisierten Factories
und kapseln die Erzeugungstechnik ein
-
Über Factory- und Parameter-Matching werden automatisch
geeignete Implementierungen ausgewählt
-
OCPs sind performant, können sogar vorkompiliert werden
und problemlos in großer Anzahl Verwendung finden
-
Zyklen u.ä. können in der Regel automatisch, mitunter mit
etwas Hilfestellung aufgelöst werden
-
OCPs können zur Laufzeit oder wann immer einfach
ausgetauscht werden ohne Kompilation
-
OCPs können überladen werden, die Auswahl einer
Implementierungs-Variante kann kontextuell dynamisch gesteuert werden
-
Durch Alias-Vergabe können OCPs Endanwender-tauglich
gemacht werden, sie sind dann äußerst kompakt und lesbar und bieten
dennoch den vollen Umfang an Erweiterungsmöglichkeiten
-
Die OCP-Hierarchie kann in eine konfigurierbare
Baumstruktur eingelesen werden und bspw. durchstöbert
|
Das Tutorial bietet einen kompakten,
anhand von einfachen Beispielen nachvollziehbaren Überblick über alle Merkmale.
|
| Inversion of Control und Dependency Injection |
OCPs haben einige Gemeinsamkeiten mit
Inversion of
Control- (IoC-) bzw. Dependency
Injection-Containern, und es gibt Unterschiede.
|
|
Sowohl OCPs als auch IoC-Container beschreiben die Anwendungsstruktur
in deklarativer Weise, in der Regel in einem dynamisch interpretierten
XML-Format.
|
|
IoC-Container nutzen Dependency Injection, um die Struktur aufzubauen,
gesteuert durch eine Instanz eines "Containers". OCPs sind im
Unterschied dazu vom Konzept des Containers völlig frei.
|
|
OCPs sind eine unabhängige Komponente, die auf die explizite
Beschreibung von Objekt-Aggregaten unter Wahrung und Förderung
objektorientierter Prinzipien hin ausgerichtet sind.
|