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