Kannst du mir dafür ein konkretes Beispiel geben? Das ist genau das, was ich meine bzw. was ich nicht verstanden habe!
Angenommen in der Applikation ist eine MSMQBrokerClient Klasse als private Property "MyMSMQBrokerClient" erzeugt worden.
Diese eine Instanz wird dann in einer Factory Methode verwendet die eine Connection liefert:
Delphi-Quellcode:
function TMyApp.CreateConnection: IConnection;
begin
Result := MyMSMQBrokerClient.CreateConnection;
end;
Und dann kann im Programm an beliebigen Stellen - die natürlich auf die MyApp Instanz zugreifen können - eine Connection erzeugt und geöffnet werden, zum Beispiel in einem Thread.
Delphi-Quellcode:
procedure TMyDoWorkThread.Execute;
var
Conn: IConnection;
Msg: string;
begin
Conn := MyApp.CreateConnection;
Conn.Start;
while not Terminated do begin
Msg := Conn.Receive(1000);
// mach etwas mit der erhaltenen Nachricht...
end;
Conn.Stop;
end;
(Exceptionbehandlung für Verbindungsverlust etc. mal weggelassen).