Java 使用哪种设计模式来使用同一类的两个生成版本

Java 使用哪种设计模式来使用同一类的两个生成版本,java,design-patterns,Java,Design Patterns,我们有一个web应用程序,它也有soap API(我们称之为apiVersion1)。现在,我们需要添加一些新功能,因此,我们需要实现apiVersion2,但对于某些消费者,我们仍然需要保持apiVersion1的活力。 假设我们从WSDL生成了以下两个类: pkg.apiVersion1.SomeGeneratedClass pkg.apiVersion2.SomeGeneratedClass 在apiVersion1中,我们使用了如下内容: pkg.apiVersion1.SomeGen

我们有一个web应用程序,它也有soap API(我们称之为apiVersion1)。现在,我们需要添加一些新功能,因此,我们需要实现apiVersion2,但对于某些消费者,我们仍然需要保持apiVersion1的活力。 假设我们从WSDL生成了以下两个类:

pkg.apiVersion1.SomeGeneratedClass
pkg.apiVersion2.SomeGeneratedClass
在apiVersion1中,我们使用了如下内容:

pkg.apiVersion1.SomeGeneratedClass someClass = converter.getSomeGeneratedClass(someClassVO);
someClass.setProperty(xyz);
...
现在我需要按如下方式更改代码:

if(isapi2v0Supported){
    pkg.apiVersion2.SomeGeneratedClass someClass = converter.getSomeGeneratedClass(someClassVO);
    someClass.setProperty(xyz);
    ...
}
else{
    pkg.apiVersion1.SomeGeneratedClass someClass = converter.getSomeGeneratedClass(someClassVO);
    someClass.setProperty(xyz);
    ...
}
但我不喜欢该解决方案,我希望以某种方式使用它,因此我不需要更改SomeGeneratedClass的用法,因为它与pkg.apiVersion1.SomeGeneratedClass和pkg.apiVersion2.SomeGeneratedClass完全相同:

SomeGeneratedClassWrapper someClass = converter.getSomeGeneratedClass(someClassVO);
someClass.setProperty(xyz);
...
是否有任何设计模式可供我使用?如果没有,你有什么建议如何处理这个具体问题? 请注意,上面提到的两个类是从WSDL生成的,所以我们不能(或不想)修改它们