Hallo,
ich habe neulich in einem Programm das folgende Konzept entdeckt, durch das (nur bei Bedarf) eine Instanz einer anderen Klasse erzeugt wird, die dann innerhalb der erzeugenden Klasse überall verfügbar ist. Ist das ein Pattern und wenn ja, wie nennt man das. Und ist der Einsatz sinnvoll?
Delphi-Quellcode:
Type IrgendeineKlasse = class
private
fAndereKlasse:TAndereKlasse
function getAndereKlasse:TAndereKlasse;
public
property AndereKlasse:TAndereKlasse read getAndereKlasse;
end;
Im Implementaionsteil dann:
Delphi-Quellcode:
TIrgendeineKlasse.getAndereKlasse:TAndereKlasse;
begin
if fAndereKlasse=nil then
fAndereKlasse:=TAndereKlasse.Create;
Result:=fAndereKlasse;
end;
Im Destruktor der Klasse wird die andere Klasse dann ggf. freigegeben mit:
Delphi-Quellcode:
if fAndereKlasse<>nil then
fAndereKlasse.Free;
Die andere Klasse kann dann in der IrgendeineKlasse überall aufgerufen werden mit:
AndereKlasse.Machwas