时间:2023-04-12
标签: #Java #多态 #接口 #实例
以下是一个简化的网球场地预约系统的例子,以展示多态和接口在实际生产中的应用。
首先,我们定义一个接口 PaymentMethod
,表示不同的支付方式:
public interface PaymentMethod {
void processPayment(double amount);
}
接下来,我们为不同的支付方式创建实现类,例如 CreditCard
和 PayPal
:
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
接口定义了一个规范,而 CreditCard
和 PayPal
类提供了具体的实现。这样,我们可以灵活地为 Booking
类添加新的支付方式,而不需要修改 Booking
类的代码。多态使得我们可以将不同支付方式的实现类对象赋值给 PaymentMethod
类型的引用,从而在运行时动态调用正确的方法。
在实际生产中,我们可以利用这种设计更轻松地添加新的支付方式,例如 Alipay
、WeChatPay
等,只需要创建新的实现类并实现 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);
}
}
通过这个例子,我们可以看到多态和接口在实际生产中的应用,以及它们是如何提高代码的灵活性和可扩展性的。