Gesucht - Vererbung bei statischen Merkmalen/Methoden

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
2 Beiträge • Seite 1 von 1
2 Beiträge Seite 1 von 1

Gesucht - Vererbung bei statischen Merkmalen/Methoden

Beitrag von black_adept (Top Expert / 3942 / 105 / 885 ) »
Folgendes Problem:

Gegeben sei eine schon existierende Klasse, welche einen Sack voll abgeleiteter Klassen besitzt, die nicht alle meiner Kontrolle unterliegen.
Jetzt soll für diese (Grund)klasse eine neue Methode eingeführt werden, mit welcher man z.B. eine Versionsinformation der Klasse auslesen kann. Diese Methode soll dann schlauerweise KLASSE=>GET_VERSION heißen und einfach einen Versionsstring zurückgeben ( z.B. V1.0.0 als default ).

Bis hierhin kein Problem. Aber zukünftig soll diese Methode auch für jede Klasse ( auch die abgeleiteten ) die aktuelle Versionsinformation zurückgeben. Wenn die Hauptklasse einen Versionssprung macht, soll diese ab dann Ver. 2.1.0 zurückgeben, wohingegen die Unterklassen weiterhin 1.0.0 zurückgeben sollen. Andererseits dürfen die Unterklassen Versionen selber für sich vergeben.

Wenn es sich hier um Instanzmethoden handeln würde wäre das Ganze ja gar kein Problem (evtl. bei der Hauptklasse etwas komplizierter wg. der momentan nicht vorhandenen Redefinitionen der Unterklassen). Aber wie bekomme ich so etwas bei statischen Methoden hin, da SAP ja keine Redefinition statischer Methoden vorsieht?

Die Autoren der Haupt- und Unterklassen haben jeweils nicht unbedingt Zugriff auf die anderen Klassen, so dass jede Klasse für sich selber diese Information bereitstellen muss.


Mein aktueller Ansatz:
1 Instanzmethode (redefinierbar), welche mir genau diese Information zurückgibt ( Ohne importparameter, nur einen Returnparameter )
1 statische Methode mit Importparameter iv_klassenname mit der ich eine Instanz der (evtl. Unter-)klasse erzeuge und dann die oben angesprochene (Instanz)methode die Info zurückgeben lasse.


Aber das scheint mir zu kompliziert.
Hat jemand einen schicken Ansatz für dieses Problem?
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Gesucht - Vererbung bei statischen Merkmalen/Methoden

Beitrag von a-dead-trousers (Top Expert / 4267 / 213 / 1140 ) »
hmm... nicht so einfach zu lösen.
Fällt mir im Momen auch nichts anderes ein, als deine Lösung.
Vielleicht könnte die Methode aber auch in jeder Klasse extra implementiert werden und einen bestimmten Aufbau vom Namen her haben:
GET_VERSION_<Klassenname>

Ich weiß nicht in wie weit du das Klassenmodell ändern kannst, aber normalerweise braucht man keine "Versionsinformation":
Aus den Anfängen der Internetbrowser ist dir sicherlich "best viewed with xxx" bekannt. Das hat sich mittlerweile ja zum Glück geändert. Der neue, bessere Ansatz lautet "Feature-Detetction". Alle JavaScript Libraries (z.B. jQuery) gehen in diese Richtung. Vielleicht kannst du ja in deinen Klassenhierarchie eine zweite Interface-Hierarchie implementieren die dir Auskunft über die zur Verfügung stehenden Funktionen der Klassen liefert.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1744
Views
IF Abfragen bei Merkmalen
von commolus » 07.12.2012 10:51 • Verfasst in SAP - Allgemeines
0
Antw.
6483
Views
Löschen von Merkmalen in Klassen
von MAS » 02.05.2008 12:15 • Verfasst in SAP - Allgemeines
0
Antw.
1265
Views
Vererbung von CL_RSR_WWW_MODIFY_TABLE
von ratoshuan » 04.04.2006 18:45 • Verfasst in Web-Dynpro, BSP + BHTML
7
Antw.
4194
Views
Interfaces vs. Vererbung
von ewx » 02.12.2014 18:32 • Verfasst in ABAP Objects®

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.