Thread Modern Perl: Welche Module zum Erstellen von Inside Out Objects und warum?
(5 answers)
Opened by GwenDragon at 2013-01-18 17:12
Eine interessante Frage für Anfänger und Leute, die ein bisschen in Object Oriented Perl (OOP) reinschnuppern oder ab und an damit zu tun haben. Die Profis hier werden wohl eher abwinken.
Viele Leute verwende für das Innenleben ihrer durch new erzeugten Objekte in OOP meist blessed Hashes. Hat nur einen Nachteil: jeder kann extern drauf zugreifen, mit der Methode (den Akzessoren) und dem Hashkey. Das ist natürlich keine echte Kapselung der Daten des Objekts. Wie es anders geht zeigt (etwas länger her): http://www.stonehenge.com/merlyn/UnixReview/col63.... https://www.socialtext.net/perl5/inside_out_object http://perltraining.com.au/tips/2006-03-31.html 515650 219924 Perldoc zu perlobj und inside-out. Auf CPAN existieren diverse Module: Class::InsideOut, Object::InsideOut. Moose & Co. dienen auch der besseren Abstrahierung von Objekten. Wer Modern Perl programmiert (und auch diverse Bücher und $foo dazu las) macht sich jetzt wohl weniger Gedanken darüber. Aber andere Leute an Module und OOP und Modern Perl dran zu führen, ist auch wichtig. Verhindert ihr, dass jemand die Methoden eures Objekts umgeht und auf die gesegneten Eingeweide des Objekts (blessed hash) direkt greift? Wenn ja, wie? Wenn nein, warum nicht? Welche Programmiertricks verwendet ihr dazu? Welche Module verwendet ihr? Wie generiert ihr eure Methoden? Welche Fallen gibt es bei OOP und "versteckten" Objekten? Last edited: 2013-01-18 17:13:59 +0100 (CET) |