使用没有接口的适配器模式?

时间:2014-03-18 06:50:25

标签: java oop

我可以访问A类,这是我无法修改的第三方具体类。

我想将类B的类似对象转换为第三方具体对象。我不确定如何正确地做到这一点

现在我有

public class BAdapter {
   private B b;
   public BAdapter(B b) {
     this.b = b;
   }

   public A toClassA() {
      // convert to and return an instance of A
   }   
 }

感觉这个适配器类应该是静态的,这使它感觉更像是反模式。

我有一堆来自第三方的类,我将需要转换,并想知道我应该使用的正确模式。第三方不提供任何接口,只提供具体的类,所以我不能使用真正的适配器模式。任何选择或想法?

1 个答案:

答案 0 :(得分:0)

我看到它的方式,你有三个选择:

  1. 如果您只需要从B转换为A,则不需要适配器。只需将toClassA()方法添加到B类。
  2. 如果要映射类A接口以模拟类B的接口,请使用适配器,以便在需要{{1}时实际仅实例化适配器(并隐式A){{ 1}}功能。
  3. 如果AB添加了功能,则从A派生B:经典继承甚至多继承,如果您需要与类A的接口兼容性我们不知道的。