多态与接口的实际生产案例

时间:2023-04-12
标签: #Java #多态 #接口 #实例

以下是一个简化的网球场地预约系统的例子,以展示多态和接口在实际生产中的应用。

首先,我们定义一个接口 PaymentMethod,表示不同的支付方式:

public interface PaymentMethod {
    void processPayment(double amount);
}

接下来,我们为不同的支付方式创建实现类,例如 CreditCardPayPal

public class CreditCard implements PaymentMethod {
    @Override
    public void processPayment(double amount) {
        System.out.println("Processing credit card payment: $" + amount);
        // 实际的信用卡支付处理逻辑...
    }
}

public class PayPal implements PaymentMethod {
    @Override
    public void processPayment(double amount) {
        System.out.println("Processing PayPal payment: $" + amount);
        // 实际的PayPal支付处理逻辑...
    }
}

现在,我们有一个 Booking 类,表示预约。这个类可以接受一个 PaymentMethod 类型的对象,以便在完成预约时处理支付:

public class Booking {
    private PaymentMethod paymentMethod;

    public Booking(PaymentMethod paymentMethod) {
        this.paymentMethod = paymentMethod;
    }

    public void completeBooking(double amount) {
        System.out.println("Completing booking...");
        paymentMethod.processPayment(amount);
    }
}

在这个例子中,我们使用了接口和多态的概念。PaymentMethod 接口定义了一个规范,而 CreditCardPayPal 类提供了具体的实现。这样,我们可以灵活地为 Booking 类添加新的支付方式,而不需要修改 Booking 类的代码。多态使得我们可以将不同支付方式的实现类对象赋值给 PaymentMethod 类型的引用,从而在运行时动态调用正确的方法。

在实际生产中,我们可以利用这种设计更轻松地添加新的支付方式,例如 AlipayWeChatPay 等,只需要创建新的实现类并实现 PaymentMethod 接口即可。

以下是一个简单的测试代码:

public class Main {
    public static void main(String[] args) {
        PaymentMethod creditCard = new CreditCard();
        PaymentMethod payPal = new PayPal();

        Booking booking1 = new Booking(creditCard);
        Booking booking2 = new Booking(payPal);

        booking1.completeBooking(100);
        booking2.completeBooking(150);
    }
}

通过这个例子,我们可以看到多态和接口在实际生产中的应用,以及它们是如何提高代码的灵活性和可扩展性的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值