我有一个库,它返回一个web服务客户端。webservice客户端上的包装器
Client c = Clientlib.getclient();
现在我所做的就是我创建在它上面的包装:
public class Myclient {
private static Client c = ClientLib.getClient();
private static instance = new MyClient();
public static MyClient getInstance(){
return instance;
}
private Myclient(){
//singleton
}
public Data getDate(Sting id){
Data1 d1 = cleint.getData();
convert d1 to Data and return data
}
}
这是这样做的正确方法?我应该只创建一次Client
的实例吗?
这种方法会出现问题吗?如果两个线程同时调用getData
方法 怎么办?这种情况很可能是因为这是一个基于Web的应用程序。
如果与服务器的连接关闭并返回,该怎么办?由于http是无状态的,我不认为这应该是一个问题。
:谢谢你的回复。我还有一个相关的问题。我有一些web服务,每个serive提供不同类型的数据。因此,每个包装getData返回不同的beans.also不同包装的每个gedata接受不同类型的args和args的diff数。所以我在那里在基础中提供抽象方法并没有意义,每个包装都包含它。可以给你一些commens – user978939 2012-07-26 09:40:57
不,我不认为基础类如此简单可以让你获益。在编写代码时,您可能会看到一些值得分解的常见事物。 – pimaster 2012-07-28 13:39:53