Hallo,
nochmal zum Problem mit dem Konstruktor: Es kann nichts mehr versteckt werden, was bereits in einer Elternklasse veröffentlich wurde. Man kann dann zwar nicht genau diesen Konstruktor aufrufen, trotzdem ist es möglich, eine Instanz dieser Klasse zu erzeugen.
Besser ist es, wenn man soetwas macht:
Delphi-Quellcode:
TSingleton =
class(TObject)
private
constructor _Create();
public
constructor Create();
end;
{...}
constructor TSingleton.Create();
begin
raise Exception.Create('
Use TSingleton.getInstance!');
end;
constructor TSingleton._Create();
begin
inherited Create;
{...}
end;
Auf diesem Weg ist es nicht mehr möglich, eine Instanz dieser Klasse ohne den eigenen Konstruktor zu erzeugen.