如何创建一个公共客户端类,连接和共享该连接

时间:2012-04-02 18:47:05

标签: c# .net oop

我正在设计一个连接到第三方Web服务API的工具(在.net中),一旦连接,就会创建一个对该API的单个客户端引用。此单个客户端实例需要在其他几个类上重用,这些类将使用客户端作为代理来执行其方法。完成后,我需要关闭此单个客户端与API的连接。

我可以创建一个实例并在所有其他类中传递对它的引用。或者我可以使用静态类,但这并不是最好的方式。

我可以用来创建和共享这个单一客户端实例的最佳OOP设计是什么?我应该创建一个基类并在其他类中继承它,并且它们以某种方式使用单个公共客户端引用?

我无法理解它。

2 个答案:

答案 0 :(得分:1)

你所描述的内容听起来就像一个单身人士,我认为这是一个很好的用例 - 请看这篇文章:http://dotnet.dzone.com/news/c-singleton-pattern-vs-static-

答案 1 :(得分:0)

如果这是针对WinForms应用程序的,那么将其设置为静态就可以了。无论如何,它始终被同一个线程重用。

但是,您应该仍然有一些逻辑来处理共享代理出现故障的可能性。当您调用的服务中存在异常时,就会发生这种情况。一旦出现故障,就不能再使用代理,必须更换代理。

因此,更好的方法是创建一个暴露Connection属性的单例,如果底层代理出现故障,该属性将在get {}中被替换。