In Empire 2000 arbeite
ich mit einer Template-Klasse aus dem Buch "Fortgeschrittene
Perl-Programmierung". Je mehr ich damit arbeite, für desto
wichtiger erachte ich es, eine solche Template-Klasse für Objekte
zu haben. Nun überlege ich, diese Klasse zu überarbeiten.
Hierzu erstelle ich ein Anforderungsprofil und sehe mir dann alle
vorhandenen Template-Klassen an, derer ich habhaft werden kann.
Dort lerne ich noch mehr dazu und dann kann ich mir überlegen, was
meine Klasse können sollte.
Anforderungsprofil #
Generelle Dinge
- Hohe Performanz des Ganzen. Evtl. keine Ableitung, sondern Konstruktion der Klasse per Template und eval?
- Nutzbarkeit mit einfachen, vorhandenen Hashes
- Einfachheit aller Schnittstellen, Komplexität ggf. versteckt in der Klassendefinition
- Kommunikation zwischen Objekten (Callback)
Format der Basisdaten
- ganz normale Hashes sollten problemlos benutzt werden können
- Datensätze in Arrays (wie in meiner Klasse) haben bisher auch nicht geschadet
- Datenbankzugriff sollte möglich sein Callback-Mechanismen fallen aus, wenn ein Objekt in der Datenbank steht. Entweder ein exklusiver Lock auf die ganze Datenbank oder generell nur einen User. Hmmm....
- Beschreibung des Objektes ggf. in Definitionssprache
- grundsätzlich auch Funktion ohne Beschreibung
gemeinsame Objekteigenschaften
- Initialisierung
- Deinitialisierung
- Speichern
- Laden
- Callback-System (Signals and Slots)
- Informationen über das Objekt, seinen Typ, etc.
- Ist es sinnvoll, mit Exceptions zu arbeiten? Wahrscheinlich ja!
- Typüberprüfung (evtl. abschaltbar)
aufbauende Erweiterungen
- automatische Erstellung von Tk-Oberflächen
- evtl. automatische Erstellung von HTML-Formularen
Vergleich von CPAN-Modulen #
KlassenTemplatesImCPAN
Sinnige CPAN-Module, die benutzt werden #
Alternativen für Exception Handling:
- Exception::Class und Error
- Exceptions