Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Thomas R.
Code: Alles auswählen.
singleton_class=>get_instance( )->meth1( ).
Ich hab hier ein 7.40er Release beim Kunden, das ist schon ziemlich geil, welche neuen Möglichkeiten man damit hat. Ich will nix Älteres mehr habenThomas R. hat geschrieben:Will 7.31 haben....
(unter 7.01 funktioniert es definitiv nicht).
Im neuen Debugger hat man doch inzwischen auch Zugriff auf alle statischen Attribute einer Klasse. Man kann ja zum Beispiel im neuen Debugger über den Reiter Data Explorer > Einzelanzeige dort auch den Klassennamen angeben. Anschließend hat man dann Zugriff auf alle statischen Attribute dieser Klasse.ewx hat geschrieben:Vorteil bei einem instantiierten Objekt ist, dass man im Debugger Zugriff auf alle Variablen hat (ME).
Das funktioniert bei einer statischen Methode nicht.
Ich verwende trotzdem für kleine Funktionen gerne statische Methoden, da diese beim Aufruf einfacher sind (Ein Mal CALL METHOD anstelle CREATE OBJECT + CALL METHOD).
Hallo adt,a-dead-trousers hat geschrieben:Hi!
Deiner GET_INSTANCE-Methode könntest du z.B. einen Parameter spendieren mit dem entschieden wird, welche Klasse instanziert werden soll.
Oder, sofern das geht, du baust dein Klassen-Design etwas um:
Klasse A (Keine GET_INSTANCE-Methode; beinhaltet das ganze "gemeinsame" Coding)
Klasse B (Abgeleitet von A; Erweitert/Ergänzt Methoden aus A; GET_INSTANCE-Methode liefert B)
Klasse C (Abgeleitet von A; Erweitert/Ergänzt Methoden aus A; GET_INSTANCE-Methode liefert C)
lg
ADT
Nein, B und C haben jede eine eigene GET_INSTANCE Methode. Ein Interface bringt da nix, weil dann ja erst wieder ein Down-Cast notwendig wird.black_adept hat geschrieben:Hallo adt,a-dead-trousers hat geschrieben:Hi!
Deiner GET_INSTANCE-Methode könntest du z.B. einen Parameter spendieren mit dem entschieden wird, welche Klasse instanziert werden soll.
Oder, sofern das geht, du baust dein Klassen-Design etwas um:
Klasse A (Keine GET_INSTANCE-Methode; beinhaltet das ganze "gemeinsame" Coding)
Klasse B (Abgeleitet von A; Erweitert/Ergänzt Methoden aus A; GET_INSTANCE-Methode liefert B)
Klasse C (Abgeleitet von A; Erweitert/Ergänzt Methoden aus A; GET_INSTANCE-Methode liefert C)
lg
ADT
Vorschlag 1 ist mir klar - aber bei Vorschlag 2 habe ich wohl die Tomaten von Thomas geerbt und wollte ich noch mal nachhaken ob ich das richtig verstanden habe.
Klasse A wie beschrieben, Klassen B und C implementieren ein Interface mit der statischen Methode GET_INSTANCE, welches von Klasse A explizit nicht verwendet wird, da man statische Methoden ( in ABAP ) nicht redefinieren kann?