Kuerzeres Ueberschreiben von vererbten Methoden

24/11/2008 - 19:48 von Tobias Nissen | Report spam
Moin!

Ich habe eine Klasse, von der Klassen abgeleitet werden. Die, die davon
abgeleitet werden, stellen Konfigurationsdateien dar. Es gibt eine
Standard-Konfiguration (die Klasse von der abgeleitet wird) und mehrere
spezielle Konfigurationen, die immer nur ein paar Methoden von der
Superklasse veràndern.

Die Hauptarbeit soll in der Superklasse erfolgen, die abgeleiteten
Klassen sollen möglichst klein sein. Das Überschreiben mache ich auf
naive Art und Weise, einfach indem ich eine neue Deklaration der
Methode a la

sub overridden_method {
my $self = shift;
... # method body
}

angebe. Ich störe mich etwas an 'sub' und 'my $self=shift', welches
nicht wirklich nach Konfigurationsdatei aussieht[0]. Gibt es einen
kürzeren Weg, Methoden zu überschreiben?

Schöne Grüße!
Tobias

P.S.: Ich bin über Class::MakeMethods gestolpert, aber der erzeugt mir
ja nur Getter- und Setter-Methoden für Datentypen, oder?
 

Lesen sie die antworten

#1 Slaven Rezic
24/11/2008 - 20:02 | Warnen spam
Tobias Nissen writes:

Moin!

Ich habe eine Klasse, von der Klassen abgeleitet werden. Die, die davon
abgeleitet werden, stellen Konfigurationsdateien dar. Es gibt eine
Standard-Konfiguration (die Klasse von der abgeleitet wird) und mehrere
spezielle Konfigurationen, die immer nur ein paar Methoden von der
Superklasse veràndern.

Die Hauptarbeit soll in der Superklasse erfolgen, die abgeleiteten
Klassen sollen möglichst klein sein. Das Überschreiben mache ich auf
naive Art und Weise, einfach indem ich eine neue Deklaration der
Methode a la

sub overridden_method {
my $self = shift;
... # method body
}

angebe. Ich störe mich etwas an 'sub' und 'my $self=shift', welches
nicht wirklich nach Konfigurationsdatei aussieht[0]. Gibt es einen
kürzeren Weg, Methoden zu überschreiben?



Mit Method::Signatures spart man sich wenigstens 'my $self=shift'

Gruß,
Slaven

Slaven Rezic - slaven <at> rezic <dot> de

Visualize Makefiles with GraphViz:
http://user.cs.tu-berlin.de/~eserte/src/perl/GraphViz-Makefile/

Ähnliche fragen