Entwicklung eines flexiblen Objektmodells für ein ... - Jens Pfau
Entwicklung eines flexiblen Objektmodells für ein ... - Jens Pfau
Entwicklung eines flexiblen Objektmodells für ein ... - Jens Pfau
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
18 III. Taxonomie<br />
Typen als Klassen<br />
Die objektorientierte Programmierung bietet an, Typen als Sprachkonstrukte zu realisieren,<br />
nämlich als sogenannte Klassen, die <strong>für</strong> ihre Instanzen sowohl <strong>ein</strong>e gem<strong>ein</strong>same Datenbasis als<br />
auch das Verhalten vordefinieren. Es bleibt offen, wie detailliert die Typen spezifiziert werden.<br />
Gibt es nur <strong>ein</strong>e <strong>ein</strong>zige Klasse, wie bei der Modellierung der Daten mit Hilfe von dynamischen<br />
Attributen oder gibt es <strong>für</strong> jeden denkbaren Typ von Spielobjekt <strong>ein</strong>e korrespondierende Klasse<br />
mit spezifischen Daten und Verhalten? Es ist auch vorstellbar, jeweils <strong>für</strong> Kategorien von Spielobjekten<br />
<strong>ein</strong>e Klasse anzulegen, die konkreten Typen und deren Instanzen jedoch weiterhin<br />
mit dynamischen Attributen oder Eigenschaften und eigenem Verhalten zu individualisieren.<br />
Letzteres findet als Kategorieobjekte Erwähnung in der Literatur [Riley, 2003].<br />
Vorteile:<br />
• Da Elemente der Programmiersprache genutzt werden, ist das Verfahren effizienter als<br />
andere.<br />
• Diese Methode kann sehr flexibel <strong>ein</strong>gesetzt werden. Der Grad der Typisierung kann <strong>für</strong><br />
verschiedene Spielobjektkategorien unterschiedlich gehalten werden.<br />
Nachteile:<br />
• Werden die Typen der Spielobjekte zu genau vorgegeben, wird das System im Fall von<br />
Änderungen schwerfällig. Dann muss möglicherweise <strong>ein</strong>e ganze Klassenhierarchie aufgebrochen<br />
werden, um neuen Anforderungen gerecht zu werden.<br />
• Auch kl<strong>ein</strong>ere Änderungen erfordern möglicherweise <strong>ein</strong>e Neukompilierung der gesamten<br />
Klassenhierarchie.<br />
Typen als Muster<br />
Basiert <strong>ein</strong> System auf Methoden des data-driven Design, ist es nicht unüblich, Typen von<br />
Spielobjekten als Muster zu definieren [Bilas, 2002]. Diese bestehen dann aus Eigenschaften<br />
und Verhalten, die in den Formen modelliert sind, wie sie in den vorigen Abschnitten vorgestellt<br />
wurden. Jedes Spielobjekt wird als Kopie <strong><strong>ein</strong>es</strong> solchen Prototyps angelegt oder hält<br />
<strong>ein</strong>en Verweis auf s<strong>ein</strong> Muster und erbt somit dessen Daten und Verhalten. Dabei ist nicht<br />
ausgeschlossen, dass <strong>ein</strong>e Instanz die Eigenschaften ihres Musters überschreibt.<br />
Vorteile:<br />
• Das System unterstützt das data-driven Design. Typen können von Spieldesignern in externen<br />
Werkzeugen angelegt werden.<br />
• Das System ist sehr flexibel. Typen können sehr unterschiedlich s<strong>ein</strong> und Instanzen können<br />
in jeder Eigenschaft verschieden von ihren Typen s<strong>ein</strong>.<br />
18 <strong>Jens</strong> <strong>Pfau</strong> · Stephan Mehlhase