Thread Zugriff auf Membervariable aus Instanzmethode?
(16 answers)
Opened by JackBauer at 2008-05-06 12:13
$self ist im Prinzip nur eine Hash-Referenz (meistens jedenfalls). Das heisst, die {} sind, wie bei Hashes üblich einfach für den Zugriff auf einen Hashkey zuständig.
Der Unterschied zwischen $self->{reader} und $self->reader() ist einfach der, dass du im ersten Fall direkt im Hash und damit in deinem Objekt rummachst, im zweiten Fall dazu ein Funktion nutzt, in der du falsche Parameter abfangen kannst oder einiges mehr machen kannst. Insbesondere verbirgst du mittels der Methode reader() den internen Aufbaue deines Objekts. Der hat denjenigen, der damit arbeitet auch nicht zu interessieren. Der soll das Interface, sprich die Methoden nutzen. Und du kannst dadurch einfach die Internas bei Bedarf verändern. Da alle das Interface benutzen merken die davon nix. Im ersten Fall, wo du direkt auf Internas zugreifst muss dann sehr viel Code angepasst werden. |