Abstrakte Basisklasse mit definierten Methoden mit dem Sinn, redefiniert zu werden. In dieser abstrakten Klasse gibt es eine finale statische factory Methode, welche je nach Prozess/Customizing Instanzen abgeleiteter Klassen erzeugt und zurück gibt.
Die abgeleitete Klasse würde ich gerne als CREATE PROTECTED einstellen, damit die Instanzerzeugung an einer Stelle gekapselt ist. Leider geht das nicht, weil die Basisklasse keine Instanz der abgeleiteten Klasse erstellen darf.
Als FRIEND bekannt zu machen geht auch nicht, weil ich systemübergreifend entwickle und in den verschiedenen Systemen nicht alle abgeleiteten Klassen vorhanden sind.
Leg in deiner abstrakten Klasse einen Konstruktor an und mach dort einen Aufruf des FuBa SYSTEM_CALLSTACK. Wenn die Factorymethode nicht im Callstack steht wirf eine Exception oder gib eine X- oder A-Meldung aus.
Und warum kannst du denn das "FRIEND" nicht benutzen? Die Basisklasse sollte doch in jedem deiner Systeme vorhanden sein und wenn du in der Childklasse die Basisklasse als FRIEND einträgst ist doch alles in Butter.
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag: nickname8
ach klar, stand auf dem Schlauch. War verwirrt und dachte das FRIEND in die Basisklasse gehört, statt andersrum...
Danke, ich teste es mal so.
FRIEND finde ich irgendwie besser als ...CALLSTACK.
Danke