我的需求是读取本地或异地的数据,程序中用到ResultSet(本地读取)和DepartResultset(异地读取,自己写的)来获得数据,程序就像这样:
    本地:ResultSet rs  = stmt.executeQuery(sql); 
    异地:DepartResultset rs = ds.exec(sql);   
    异地rs类被封装了,没法继承ResultSet类。  我最简单的想法就是不用  
if(本地)   
    if(rs.next)   
     ...   
 else if(异地)   
   if(rs.next)
     ...省略部分代码量比较大。 
最好就是,Java代码 
Object rs = null;   
        if(本地)   
           rs = 本地   
          else  
           rs = 异地   
      
      然后if(rs.next)   
         ...  
有没有这种方式的实现。 

解决方案 »

  1.   

    可以采用adapter模式,即在既有类之上提供一个抽象接口,实现对原有不兼容的类的封装。
    具体做法:
    1.定义一个接口,提供你所需要的公用方法定义;
    2.本地和异地的相关处理类分别实现该接口。
      

  2.   

    问题解决了,用得是楼上的方法,创建了一个接口,再分别建两个返回不同rs的类来实现接口,然后就可以获得我需要的rs了。