Thread Schönes Perl - OOP, getter, setter
(10 answers)
Opened by styx-cc at 2014-04-04 18:11 2014-04-04T16:11:09 styx-cc Und das ist dein Problem. Wenn du immer nur Attribute in gleichnamigen Settern setzt, machst du keine Kapselung, und auch kein richtiges OO. Attribute sind Implementierungsdetails, und gehen den Nutzer nichts an. Der Nutzer kommuniziert nur mit Methoden mit der Klasse. Wenn du dich darauf beschränkst, dass es ein 1:1-Mapping zwischen Methoden und Attributen gibt, geht dir 90% der Mächtigkeit von OO verloren. Ich kenne jetzt den Context deines Codeschnippsels nicht, aber als User würde ich erwarten, dass es eine Methode gibt, die mir die Daten liefert, die ich haben möchte. Dass diese Methode intern eventuell ein oder mehrere Attribute benutzt, um an die Information zu kommen, ist mir egal. Es könnte also vielleicht so aussehen: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 sub markets { my $self = shift; $self->_fetch_markets(); $self->_parse_markets(); return $self->{markets}; } sub _fetch_markets { my $self = shift; return if $self->{markets_raw}; # code hier, um $self->{markets_raw} zu befüllen ... } sub _parse_markets { my $self = shift; return if $self->{markets}; $self->{markets} = decode_json $self->{markets_raw}; } |