Abgesehen davon ist das ein klassisches Beispiel für das Singleton-Pattern.
Und das ist i.A. keine gute Idee, so ein Singleton. Jedenfalls sagt das der Software-Ästhet.
Aber hier würde ich das auch in Erwägung ziehen (weil man sonst die ganze SW umbauen müsste). Allerdings findet der TE es blöd, die Connection immer explizit zu erzeugen.
Ich würde mir ja eine Klasse bauen, die meine Verbindungen verwaltet. So könnte ich beliebig viele Connections erzeugen (z.B. um in Threads Daten parallel zu laden oder mit unterschiedlichen Datenbanken zu arbeiten etc.).
Delphi-Quellcode:
TConnectionManager = class
Public
Function GetConnection : IConnection;
Procedure Release (aConnection : IConnection);
End;
...
myConnection := connectionManager.GetConnection;
Try
...
Finally
connectionManager.Release(myConnection);
end;