Thread Perl OOP
(12 answers)
Opened by sid burn at 2006-09-21 19:24 Quote Mir auch. ;) Quote Das habe ich so schon Implementiert. Also die Methoden über Typeglobs angelegt anstatt String eval. Mit eval() meinte ich eher Generell eine Möglichkeit der Automatischen Code Generierung. Quote Sparen tue ich dadurch nichts. Ich habe meine Unterschiedlichen Attribute. Als erstes werden diese Attribute nicht direkt abgespeichert, sondern später aus einer Datenbank ausgelesen. Dafür möchte ich eine Klasse schreiben um das anlegen und das ändern der Werte über eine Klasse zu machen. Zum anderen kommt es z.B. vor das ich das Attribut "duration" habe, das die zeit enthält wann der benutzer abläuft. In der Datenbank steht natürlich ein Datum. Um jetzt ein Tag hinzuzufügen möchte ich "$user->duration->add(1)" z.B. schreiben. Den 1 Tag drauf zu rechnen macht dann die Methode. Zum anderen Möchte ich bei normaler Verwendung die duration Lesen/Schreiben wie sonst auch, also so als wenn es eben keine Klasse wäre. Zum anderen wäre es blöd wenn "name" als Attribut implementiert ist also "$user->name" zum setzen und lesen funktioniert. Und ich bei "duration" ständig "duration->get" oder "duration->set" schreibe. Das wirkt irgendwie nicht mehr intuitiv und konsistent. Allerdings sollte "add" ja nicht mit "user" oder sonstigen Attributen Funktionieren, sondern nur mit "duration". Zum anderen sieht es aber unnatürlich aus wenn ich "$user->add(1)" schreibe. Hier fehlt irgendwie der Bezug zu "duration". Und "duration_add" finde ich unpraktisch. Zum anderen finde ich gehört die add Methode halt zu Duration, und nicht in eine allgemeine Klasse. Quote Genau das meinte ich mit "Verschwendung von Klassen". Da teile ich genauer deine Meinung. Deswegen noch meine Frage wie ich es anders machen könnte. Class::Accessor muss ich mir nochmal anschauen, denke aber letztendlich das es letztendlich das selbe macht was ich nachbaue. Bisher sieht mein Code so aus: Code: (dl
)
1 { package user; Bisher klappt das ganze wenn ich alles in einer Datei packe, versuche ich aber das package "user" in einem Modul zu packen klappt es nicht mehr. Ich denke es gibt da anscheind Probleme mit Laufzeit/Runtime Kompilation. EDIT: Das mit dem Modul klappt doch, und es gab keine Probleme mit der Laufzeit/Kompilierzeit. Hatte nur etwas zusätzliches implementiert, und die Hälfte dabei vergessen. :blush:\n\n <!--EDIT|sid burn|1158917164--> Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
|