如何围绕已存在但无法在java中修改的类创建接口

2024-03-12

假设我的代码中已经有 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(使用前将#替换为@)

如何围绕已存在但无法在java中修改的类创建接口 的相关文章

随机推荐