假设我的代码中已经有 2 个类:
class SomeOrder {
String getOrderId() { return orderId; }
}
class AnotherOrder {
String getOrderId() { return orderId; }
}
如何围绕这两个类创建一个接口:
interface Order {
String getOrderId();
}
理想情况下,我会修改代码,以便SomOrder implements Order
and 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
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)