1 2 3 4 5
$obj->foo = 3; # generierte lvalue sub, die den Hashkey foo stehen lässt $obj->{foo} = 3; # prinzipiell das Gleiche. Dadurch, dass der Hash zusätzlich einen tie hat krieg ich die Zuweisung mit $obj->set_foo(3); # wieder das Gleiche for (keys %$obj) # tie greift wieder, liefert nur die ORM-Felder
2013-01-18T16:12:07 GwenDragonViele 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.
2013-01-18T16:12:07 GwenDragonVerhindert ihr, dass jemand die Methoden eures Objekts umgeht und auf die gesegneten Eingeweide des Objekts (blessed hash) direkt greift?
QuoteWenn nein, warum nicht?
QuoteWelche Module verwendet ihr? Wie generiert ihr eure Methoden?
QuoteWelche Fallen gibt es bei OOP und "versteckten" Objekten?