设计模式
设计模式案例:简单工厂模式、策略模式、依赖注入模式
装饰器模式
建造者模式
工厂方法模式和建造者模式 区别
工厂模式
策略模式
设计模式简述
适配器模式
开闭原则
设计模式:开篇
django 涉及了哪些设计模式
本文档使用 MrDoc 发布
-
+
首页
适配器模式
### 概述 > 适配器模式的主要目的是解决不同接口之间的兼容性问题,使得原本由于接口不兼容而无法一起工作的类可以协同工作 虽然`简单工厂模式`和`适配器模式`都可以用来处理不同的实现,但它们的设计意图和使用场景是不同的。让我用支付系统的例子来说明: 适配器模式的实现: ``` # 已有的第三方类(我们无法修改的代码) class ThirdPartyAPI: def submit_transaction(self, money): return f"Processing ${money} via third party system" # 已有的第三方类(我们无法修改的代码) class PayPalAPI: def send_payment(self, payment_data): return f"PayPal payment: ${payment_data}" # 目标接口 class Payment: def process_payment(self, amount): pass # 适配器1 class ThirdPartyAdapter(Payment): def __init__(self, third_party): self.third_party = third_party def process_payment(self, amount): return self.third_party.submit_transaction(amount) # 适配器2 class PayPalAdapter(Payment): def __init__(self, paypal): self.paypal = paypal def process_payment(self, amount): return self.paypal.send_payment(amount) # 适配器工厂(简单工厂模式) class PaymentAdapterFactory: @staticmethod def create_adapter(payment_type: str) -> Payment: if payment_type == "third_party": return ThirdPartyAdapter(ThirdPartyAPI()) elif payment_type == "paypal": return PayPalAdapter(PayPalAPI()) raise ValueError(f"Unknown payment type: {payment_type}") ``` 使用方法: ``` # 适配器 - 适用于集成现有的支付系统 adaptor1 = PaymentAdapterFactory.create_adapter("paypal") adaptor2 = PaymentAdapterFactory.create_adapter("third_party") adaptor1.process_payment(100) adaptor2.process_payment(100) ``` ### 分析 在这个例子中,同时使用了简单工厂模式和适配器模式,它们作用于不同的阶段: - 工厂模式作用于创建对象的阶段; - 适配器模式作用于方法实现阶段; #### 总结 - 适配器模式更适合处理接口不兼容的情况; - 简单工厂更适合管理对象的创建;
gaojian
2024年12月8日 19:46
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码