Thread Klassen-Attribut auch in der Base-Klassen nutzen
(5 answers)
Opened by Hagen at 2021-04-14 23:15
Hallo,
ich würde gerne in einer Kind-Klassen ein Konfiguration definieren, auf die ich auch in der Eltern-Klassen zugreifen kann. Aber irgendwie finde ich keine schicke Lösung dafür bzw. der Zugriff funktioniert nicht. Minimal-Code-Beispiel: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package DB::Service; use base DB::Base; use strict; use warnings; my %config = ( table => 'service' ); ... package DB::Base use strict; use warnings; sub load { my ($self) = @_; $self->getDataFromTable($config{table}); } Letzendlich geht es darum, dass die Eltern-Klasse sehr allgemein gehalten ist und über "die Konfiguration" in der Kind-Klasse unterschiedlich arbeitet. D.h. es gibt z.B. wie hier die DB::Service-Klasse, die ihre Daten aus der Service-Tabelle holen soll; es gibt aber auch eine DB::Kunden-Klasse, die ihre Daten aus der Kunden-Tabelle holen soll (in meine aktuellen Fall ist die 'Konfiguration' umfangreicher). An anderen Stellen habe ich gesehen, dass man Methoden überschreibt. D.h. in der Eltern-Klasse gibt es die Methode 'getTable', die aber leer ist; in der Kindklasse wird diese dann überschrieben, so dass sie im aktuellen Beispiel 'service' zurückgeben würde. Geht das auch kürzer und/oder 'eleganter'? Bisherige Recherchen waren leider erfolglos. Gruß Hagen Gruß
Hagen |