Hallo zusammen,
folgende Ausgangssituation:
Gegeben sind die folgenden Klassen (abgespeckte Darstellung):
Delphi-Quellcode:
TMeinMemoObject = Class(TObject)
private
FValue: String;
public
Constructor Create(oMemo: TMeinMemo);
Property Value: String read FValue;
end;
TMeinMemo = Class(TMemo)
private
Function GetMeinMemoObject: TMeinMemoObject;
public
Property MeinMemoObject : TMeinMemoObject read GetMeinMemoObject;
end;
Objekte der Klasse 'TMeinMemo' können direkt Objekte vom Typ 'TMeinMemoObject' erzeugen.
Zugriff erfolgt dann über die entsprechende Property, bspw.
sMeinString := oMeinMemo.MeinMemoObject.Value;
So, wie ich nun aber auf das Feld 'Value' zugreifen kann, wäre es genauso möglich, auf den Constructor zuzugreifen:
oMeinMemo.MeinMemoObject.Create(oMeinMemo);
Und genau das möchte ich verhindern.
Im Klartext: ich möchte verhindern, dass ein Objekt der Klasse 'TMeinMemoObject' von außen erzeugt werden kann.
Nun dachte ich, dass es genügen würde, den Constructor aus dem Public- einfach in den Private-Bereich zu packen.
Leider genügt das nicht, da so ja immer noch der Constructor von der Vorfahrklasse 'TObject' aufrufbar ist.
Meine Frage nun: Wie kann ich jeglichen Zugriff auf den Constructor von 'TMeinMemoObject' von außen verhindern, und diesen nur der Klasse 'TMeinMemo' ermöglichen?