我有几个 POJO 类,如下
//pojo
public class Shipment { }
//pojo
public class DigitalShipment extends Shipment { }
A 类 PaymentA
如下
public class PaymentA extends Payment<Shipment> {
public void execute(Shipment shipment) {
// some business logic.
}
private void methodA() {
}
private void methodB() {
}
private void methodC() {
}
}
现在我需要编写另一个类PaymentB
,但是我发现这里要编写的逻辑与PaymentA
类几乎相似。唯一的区别是在 PaymentA
中它接受 Shipment
而在 PaymentB
中它接受 DigitalShipment
。
有没有办法避免这个重复的代码?。如果我继续编写这个类,我也不喜欢将私有方法复制到这个类中。
我有一个选择是创建一个新的类,帮助程序,并将这些私有方法推送到那里,但是 execute 方法中的大部分逻辑也将在所有类中重复,所以我试图考虑是否有更好的方法实现这一目标?
public class PaymentB extends Payment<DigitalShipment> {
public void execute(DigitalShipment shipment) {
// Almost same business logic
}
private void methodA() {
// copy of paymentA class methodA
}
private void methodB() {
// copy of paymentA class methodB
}
private void methodC() {
// copy of paymentA class methodC
}
}