|
Das Objekt Modell
Das Objekt Modell bildet die Basis des exom Frameworks. Das Modell ist angelegt, um
die im vorangegangenen Abschnitt beschriebenen Funktionalitäten zu
unterstützen. Wie für ein Objekt Modell typisch, bietet das Framework eine
Klasse, von der alle Klassen abgeleitet werden, um sie in das Objekt Modell zu
integrieren. Im exom Framework ist dies die Klasse exom::XmObject.
Um ein Maximum an Flexibilität zu erreichen, stehen für das Framework folgende
Hauptziele im Mittelpunkt:
- Einfachheit bei der Verwendung
- Minimaler Verbrauch von Systemressourcen (Speicher und CPU Zeit)
- Einfache Integration in verschiedene Umgebungen.
Um diese Flexibilität und die beschriebenen Funktionen zu unterstützen,
hat die Basisklasse exom::XmObject folgende Eigenschaften:
- Kleines Interface - 12 virtuelle Methoden
- Enthält keine eigenen Member Attribute
- Leerer Konstruktor / Destruktor
- Keine Verwendung von Makros und Templates
Das folgende Beispiel zeigt, wie einfach es ist, eine Klasse in das Objekt Modell zu
integrieren:
class MyClass : public XmObject
{
// --- XmObject ---
XMOBJ ObjectID ()
const { return myns.OBJ_MY_OBJECT; }
void manage
(XmMan& m) { }
}; |
Nun kann diese Klasse in exom Framework verwendet werden. Üblicherweise werden in
einer Klasse Attribute wie Strings, Integer,... oder andere Klassen als Member verwendet.
Um diese Member ins Framework aufzunehmen, müssen diese mit ihrer
übergeordneten Klasse verknüpft werden, wie das folgende Beispiel zeigt:
class MyClass : public XmObject
{
int
myInt;
MySubClass mySubClass
// --- XmObject ---
XMOBJ ObjectID ()
const { return myns.OBJ_MY_OBJECT; }
void manage
(XmMan& m)
{
m.manInt32 (myInt, myns.OBJ_MY_OBJECT);
m.manObj (mySubClass);
}
}; |
Eine Zeile Code für jeden Member - nicht mehr . Mehr Informationen darüber
findet sich im
Abschnitt Objekt Modell der Referenz Dokumentation.
Vorteile zu anderen Objekt Modellen
Es gibt eine Reihe von bekannten Objekt Modellen die in der objektorientierten Programmierung verwendet werden. Warum also das Objekt Modell des exom
Framework benutzen? Der größte Unterschied zu vielen anderen Objekt Modellen
ist, dass die Verwaltung einer Datenhierarchie in der üblichen nativen C++
weise geschieht
anstelle der Verwendung eines komplexen DOM Baums. Vorteile:
- Einfaches Datenhandling in der gewohnten typsicheren Weise anstelle von
Zugriffsfunktionen oder Verwendung von Typecasting
- Speicherschonend durch Verwendung von nativen Daten
- Keine Datenkonvertierung bei der Bearbeitung von Daten notwendig
- Einfache Datentypen wie int, char,
bool,... werden ohne zusätzliche Verwaltungsdaten (wie IntNode, CharNode,...)
gespeichert.
- Unterstützt std::string als
atomaren Datentyp
- Die Objekt (Array) Basisklasse verwendet keine zusätzlichen Member
Attribute und ermöglicht somit eine Reduzierung von Speicherverbrauch, CPU-Zeit und
Probleme, die durch ihr Kopieren entstehen können.
|