隐藏页面特效

依赖倒置

依赖倒置原则是面向对象编程的一个重要原则之一,它指出高层模块不应该依赖于底层模块,它们应该都依赖于抽象的接口。而抽象的接口不应该依赖于具体实现,具体实现应该依赖于抽象的接口。 下面是一个简单的基于 Python 的依赖倒置示例: python from abc import ABC, abstractmethod class PaymentService(ABC): @abstractmethod def process_payment(self, amount: float) -> bool: pass class PayPalPaymentService(PaymentService): def process_payment(self, amount: float) -> bool: print(f"Processing payment of {amount} via PayPal") # 实际的支付逻辑代码 class StripePaymentService(PaymentService): def process_payment(self, amount: float) -> bool: print(f"Processing payment of {amount} via Stripe") # 实际的支付逻辑代码 class Order: def __init__(self, payment_service: PaymentService): self.payment_service = payment_service def checkout(self, total_amount: float): if self.payment_service.process_payment(total_amount): print("Payment processed successfully!") else: print("Payment failed.") if __name__ == '__main__': paypal_payment_service = PayPalPaymentService() stripe_payment_service = StripePaymentService() order1 = Order(paypal_payment_service) order1.checkout(100.0) order2 = Order(stripe_payment_service) order2.checkout(200.0) 在这个示例中,我们首先定义了一个名为 PaymentService 的抽象基类,其中定义了一个名为 process_payment() 的抽象方法。然后,我们定义了两个具体的支付服务类:PayPalPaymentService StripePaymentService,它们都实现了 PaymentService 接口。 接下来,我们定义了一个名为 Order 的类,它依赖于 PaymentService 接口,并在其构造函数中注入了一个 PaymentService 实例。在 Order 类的 checkout() 方法中,我们调用 PaymentService.process_payment() 方法来进行支付操作。 在主程序中,我们创建了两个不同的 PaymentService 实例:一个是 PayPalPaymentService,另一个是 StripePaymentService。然后,我们分别创建了两个 Order 实例,并将它们的构造函数参数设置为不同的 PaymentService 实例。最后,我们调用了每个 Order 实例的 checkout() 方法来执行订单结算,并使用不同的支付服务进行支付。

__EOF__

本文作者404 Not Found
本文链接https://www.cnblogs.com/weiweivip666/p/17297308.html
关于博主:可能又在睡觉
版权声明:转载请注明出处
声援博主:如果看到我睡觉请喊我去学习
posted @   我在路上回头看  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2021-04-07 将模型对象转换为json字典:model_to_dict
点击右上角即可分享
微信分享提示