Zitat von
negaH:
Beispiel: [...]
Das Beispiel sehe ich eher als Liste der Defizite in Delphi. Es erinnert mich an eine Sache, die ich im Rahmen eines Projekts zur Native
API als Problem hatte. Leider kann man mit Delphi keine Objekte "auf dem Stack" anlegen, welche automatisch beim Verlassen ihres Sichtbarkeitsbereiches zerstört werden. Es gibt Workarounds mit Interfaces und - noch schlimmer - mit einem alten Schlüsselwort (war es TObject?!) welches eigentlich nur noch zur Abwärtskompatibilität existiert. Fazit: Delphi kann keine Objekte erzeugen, die sich wie Basistypen verhalten. (Mit .NET mag sich das geändert haben ...)
Ach ja, bist du sicher, daß es so geht? Ich nicht, denn Pool ist nicht global (also nichtmal innerhalb der Implementation-Sektion der
Unit):
Delphi-Quellcode:
function NPool: IPool;
var
Pool: IPool = nil;
begin
if Pool = nil then Pool := TPool.Create;
Result := Pool;
end;