当前位置: 首页 > wzjs >正文

五莲建设监理有限公司网站域名注册购买

五莲建设监理有限公司网站,域名注册购买,建设银行中国网站,amazon国外网站定义 适配器模式(Adapter Pattern)是一种结构型设计模式,它用于将一个类的接口转换为客户端所期待的另一个接口。 注:在适配器模式定义中所提及的接口是指广义的接口,它可以表示一个方法或者一组方法的集合。 结构 …

定义

适配器模式(Adapter Pattern)是一种结构型设计模式,它用于将一个类的接口转换为客户端所期待的另一个接口。
注:在适配器模式定义中所提及的接口是指广义的接口,它可以表示一个方法或者一组方法的集合。

结构

适配器模式可分为对象适配器模式和类适配器模式两种。在对象适配器模式中,适配器与适配者之间是关联关系;在类适配器模式中,适配器与适配者之间是继承关系。

对象适配器模式:
在这里插入图片描述

类适配器模式:
在这里插入图片描述

  • 目标抽象类(Target): 客户端希望使用的抽象类。
  • 适配者类(Adaptee): 需要适配的具体类。
  • 适配器类(Adapter): 作为一个转换器,对Adaptee和Target进行适配。

应用场景

  1. 复用现有代码:当你有现有的第三方库或遗留代码,这些代码与新的系统接口不兼容时,使用适配器模式可以使它们能够共同工作,而无需修改现有的代码。例如,旧的数据库访问类或旧的消息队列系统,通过适配器模式将它们与新的系统进行兼容。
  2. 多种外部系统对接:在系统需要与多个外部系统进行对接时,不同的外部系统可能会有不同的接口和协议。适配器模式可以帮助将这些不同的接口转换为统一的接口,从而简化集成工作。比如,可以将不同支付网关(如支付宝、微信支付、PayPal等)整合到统一的支付接口中,或将不同操作系统上的图像处理库通过适配器封装为统一接口。
  3. 当系统或接口升级时,新接口可能与旧系统不兼容。适配器模式可以将新接口转换为旧接口的形式,确保旧系统正常运行,无需大规模修改代码。例如,第三方API更新时,适配器可以将新接口转化为旧的调用方式,从而保持兼容性。

优缺点

优点:

  1. 解耦:适配器模式使得客户端和具体的实现类解耦。客户端只与适配器交互,而不直接依赖于具体的类实现,这样客户端无需关心具体实现的细节。
  2. 代码复用性高:通过使用适配器,可以将旧的或第三方的代码与新的系统无缝对接,避免重复开发。
  3. 易于扩展:通过引入新的适配器类,可以快速支持新的接口或协议,而不需要修改现有的代码。

缺点:

  1. 增加系统复杂性:适配器模式通过引入额外的适配器类来实现接口转换,这会使系统的结构更加复杂。在需要多个适配器时,会增加类的数量和相互关系,特别是当适配器层次过多时,可能会导致系统的维护变得更加困难。

代码示例

对象适配器模式

# 目标抽象类
class Payment:def pay(self, amount):pass# 支付宝支付类
class Alipay:def alipay_payment(self, amount):print(f"支付{amount}元,通过支付宝完成支付。")# 微信支付类
class WeChatPay:def wechat_payment(self, amount):print(f"支付{amount}元,通过微信支付完成支付。")# 支付宝适配器类
class AlipayAdapter(Payment):def __init__(self):self.alipay = Alipay()def pay(self, amount):self.alipay.alipay_payment(amount)# 微信支付适配器类
class WeChatPayAdapter(Payment):def __init__(self):self.wechat_pay = WeChatPay()def pay(self, amount):self.wechat_pay.wechat_payment(amount)# 客户端通过适配器来选择支付方式
alipay_adapter = AlipayAdapter()
wechat_adapter = WeChatPayAdapter()alipay_adapter.pay(100)  # 支付100元,通过支付宝
wechat_adapter.pay(200)  # 支付200元,通过微信支付

类适配器模式

# 支付宝适配器类(类适配器)
class AlipayAdapter(Alipay, Payment):def pay(self, amount):# 调用Alipay类的支付方法self.alipay_payment(amount)# 微信支付适配器类(类适配器)
class WeChatPayAdapter(WeChatPay, Payment):def pay(self, amount):# 调用WeChatPay类的支付方法self.wechat_payment(amount)# 客户端通过适配器来选择支付方式
alipay_adapter = AlipayAdapter()
wechat_adapter = WeChatPayAdapter()alipay_adapter.pay(100)  # 支付100元,通过支付宝
wechat_adapter.pay(200)  # 支付200元,通过微信支付

对象适配器模式和类适配器模式的比较

  1. 在类适配器模式中,由于适配器类是适配者类的子类,因此可以在适配器类中重写一些适配者的方法,使得适配器的灵活性更强。而在对象适配器模式中,适配器通过组合适配者类实现功能,要修改适配者的方法则需要通过委托和包装,操作上相对复杂。
  2. 在对象适配器模式中,一个对象适配器可以把多个不同的适配者适配到同一个目标。而在类适配器模式中,虽然可以通过继承多个适配者来实现,但这样会使类结构变得更加复杂,难以维护。
  3. 对象适配器模式 更适合需要高灵活性、能够适配多个不同对象或者无需修改适配者的场景。类适配器模式 适用于适配单一适配者并且对性能和实现简单性有较高要求的场景。

参考

《设计模式的艺术》

http://www.dtcms.com/wzjs/459741.html

相关文章:

  • 网站开发时间进度公司网络营销策划书
  • 网站代码查询如何进行seo搜索引擎优化
  • 做交友网站挣钱吗互联网宣传推广
  • 网站做美工惠州seo排名公司
  • 车培训网站建设如何自己做一个软件
  • 网站开发与规划seo培训机构
  • 谷哇网站建设网站运营seo实训总结
  • 如何 做网站的推广软文的目的是什么
  • 做一个专业的网站多少钱广州广告公司
  • 江苏网站制作企业创建自己的网站
  • 动态网站开发技术域名推荐
  • 做网站要找什么百度广告平台
  • php免费网站建设批量查询权重
  • 收录好的网站500个游戏推广群
  • 网站设计的英文个人接外包项目平台
  • 工信部查询网站备案b2b平台有哪些网站
  • 网站优化建议书合肥网络seo
  • 附近网站建设公司品牌营销策划
  • 医疗方面的网站建设百度指数移动版app
  • 青岛东橙网站建设最近军事新闻
  • 慧聪网de网站建设策略seo的基本步骤
  • 帮人做兼职的网站吗职业培训网
  • 重庆转店铺哪个网站平台好seo优化排名教程百度技术
  • 网站主体必须要与域名注册人相同网站如何添加友情链接
  • 数据资源网站如何做网站怎么进入
  • 酒泉网站建设哪家好谷歌seo网站运营
  • 深圳较便宜的网站建设百度账号管理中心
  • wordpress博客破解主题株洲百度seo
  • 天津百度推广公司电话小程序排名优化
  • 贵阳快速建站模板互联网论坛