2012-04-02 7 views
1

Ich entwerfe ein Tool (in .net), das eine Verbindung mit einer Webdienst-API eines Drittanbieters herstellt und nach der Verbindung einen einzelnen Clientverweis für diese API erstellt . Diese einzelne Clientinstanz muss für mehrere andere Klassen wiederverwendet werden, die den Client als Proxy verwenden, um ihre Methoden auszuführen. Sobald ich fertig bin, muss ich die Verbindung dieses einzelnen Clients mit der API schließen.Wie kann ich eine gemeinsame Clientklasse erstellen, eine Verbindung herstellen und diese Verbindung freigeben?

Ich könnte nur eine einzelne Instanz erstellen und einen Verweis darauf in allen anderen Klassen übergeben. Oder ich könnte eine statische Klasse verwenden, aber das ist nicht wirklich der beste Weg.

Was ist das beste OOP-Design, das ich zum Erstellen und Teilen dieser einzelnen Client-Instanz verwenden kann? Soll ich eine Basisklasse erstellen und sie in meinen anderen Klassen erben, und sie verwenden irgendwie die einzelne gemeinsame Client-Referenz?

Ich kann mich nicht darum kümmern.

Antwort

0

Wenn dies für eine WinForms-Anwendung ist, es statisch zu machen ist OK. Es wird sowieso immer von demselben Thread wiederverwendet.

Sie sollten jedoch noch über eine gewisse Logik verfügen, um mit der Möglichkeit umgehen zu können, dass der geteilte Proxy fehlerhaft ist. Dies geschieht, wenn eine Ausnahme in dem von Ihnen aufgerufenen Dienst vorhanden ist. Wenn ein Fehler aufgetreten ist, kann ein Proxy nicht mehr verwendet werden und muss ersetzt werden.

Daher ist es ein besserer Ansatz, ein Singleton zu erstellen, das eine Connection-Eigenschaft bereitstellt, die im get {} ersetzt wird, falls der zugrunde liegende Proxy fehlerhaft wird.

Verwandte Themen