我有下面的代码,我想向类impl中添加一个新的构造函数,而不会对现有代码进行任何更改。我是否应该使用适配器并编写自己的包装器实现,或者有什么方法可以以某种方式执行,我错过了吗? 特别ClassImpl领域Class2中需要(使用适配器模式?)设计问题的最佳方式
public interface Class1 {
void customise(Configuration configuration);
}
public interface Class2 {
void customise(DeprecatedConfiguration configuration);
}
class DeprecatedConfiguration extends Configuration {
}
public class ClassImpl {
private final Class2 customizer;
private final DeprecatedConfiguration config;
// want to deprecate this
public ClassImpl(final Class2 pCustomiser) {
customizer = pCustomiser;
config = new DeprecatedConfiguration();
}
// want to add this
//public ClassImpl(final Class1 pCustomiser) {
// customizer = pCustomiser;
// config = new Configuration();
//}
public void someMethod() {
customizer.customise(config);
}
}
我同意,但我不得不不情愿地走黑客道路。谢谢。 – Scorpion