假设我的代码中已经有2个类:
class SomeOrder {
String getOrderId() { return orderId; }
}
class AnotherOrder {
String getOrderId() { return orderId; }
}
如何围绕这两个类创建接口,即:
interface Order {
String getOrderId();
}
理想情况下,我将修改代码以使
SomOrder implements Order
和AnotherOrder implements Order
,但这里要注意的是它们属于我无法控制或编辑的程序包(即它们来自外部jar)。我的算法目前看起来像这样:
void sorter(List<SomeOrder> orders) {
... <custom sort logic> ...
someOrder.getOrderId();
}
void sorter(List<AnotherOrder> orders) {
... <custom sort logic> ...
someOrder.getOrderId();
}
通过一个接口,我可以编写:
void sorter(List<Order> orders) {
... <custom sort logic> ...
order.getOrderId();
}
最佳答案
您可以使用适配器类:
class SomeOrderAdapter implements Order {
private SomeOrder delegate;
@Override
public String getOrderId() {
return delegate.getOrderId();
}
}
和
AnotherOrder
类似。