Thread Kritik an OOP (48 answers)
Opened by hlubenow at 2017-07-12 03:18

renee
 2017-07-13 14:07
#186856 #186856
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
2017-07-13T08:59:41 rosti
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
package Man;

  # aggregation
    sub new {
        my $classname = shift;
        my $self = {
          thirst  => 0,
          COLABOT => Getraenkeautomat->new
        };
        return bless($self, $classname);
    }


und delegiere gibMirEineCola als eine eigene Methode:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
package Man;

# delegation
# die Methode einer nicht verwandten Klasse wird zu einer
# eigenen Methode gemacht
sub gibMirEineCola{
   my $self = shift;
   return $self->{COLABOT}->gibMirEineCola(@_);
}


Später delegieren geht natürlich auch, siehe factory. Fehlersuche und Debuggen wird erleichtert, ein Dump auf das $user-Objekt genügt um auch die Eigenschaften des COLABOT zu zeigen. MfG


Zwei Probleme habe ich damit:

1.) Damit musst Du mit jeder Codeänderung (umbenennung/neu schreiben von Methoden in Getraenkeautomat) auch die Methode in Man umbenennen

Was machst Du wenn Du mehrere andere Klassen hast? Viel Spaß bei der Pflege Deiner Klasse.

2.) Viel Spaß mit Objekten, die an mehreren Stellen benötigt werden und die sehr viele Daten halten. Dann wird der Speicherverbrauch explodieren...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread Kritik an OOP