我可以访问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
}
}
感觉这个适配器类应该是静态的,这使它感觉更像是反模式。
我有一堆来自第三方的类,我将需要转换,并想知道我应该使用的正确模式。第三方不提供任何接口,只提供具体的类,所以我不能使用真正的适配器模式。任何选择或想法?
答案 0 :(得分:0)
我看到它的方式,你有三个选择:
B
转换为A
,则不需要适配器。只需将toClassA()
方法添加到B类。A
接口以模拟类B
的接口,请使用适配器,以便在需要{{1}时实际仅实例化适配器(并隐式A
){{ 1}}功能。A
向B
添加了功能,则从A
派生B
:经典继承甚至多继承,如果您需要与类A
的接口兼容性我们不知道的。