Java - 继承 - 泛型

时间:2021-04-30 06:27:21

标签: java

我有几个 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

    }
}

0 个答案:

没有答案
相关问题