【发布时间】:2017-08-15 12:04:25
【问题描述】:
我想制作一个适配器接口(和实现)以使用多个类似的外部库。
比如有外部库的接口。这些库指导实现Converter 并注册它以扩展功能。
库 A
public interface AConverter<S, D> {
D convert(S source);
}
库 B
public interface BConverter<S, D> {
D convert(S source);
}
两个接口指定相同的方法。
我想要的是使用我自己的MyConverter接口。
public interface MyConverter<S, D> {
D convert(S source);
}
一个用户实现了这个类,我的库将该实现转换为 LibA 的 AConverter 实现或 LibB 的 BConverter 实现。这可能吗?
编辑:
我不想要工厂模式或扩展 LibA 接口和 LibB 接口。 MyConverter 是核心库,LibA 和 LibB 是外部可插入库。
我正在尝试的是,
public ALibAdapter {
AConverter change(MyConverter convert) {
/**
* Anything I can do?
*/
return aConverter;
}
}
【问题讨论】: