网站开发完整的解决方案,桂林住房城乡建设厅网站,四川铁科建设监理公司网站,鞍山创网站怎么创一、说明
适配器模式是一种结构型模式#xff0c;它使接口不兼容的对象能够相互合作
(一) 解决问题
主要解决接口不兼容问题
(二) 使用场景
当系统需要使用现有的类#xff0c;但类的接口不符合需求时当需要一个统一的输出接口#xff0c;但输入类型不可预知时当需要创…
一、说明
适配器模式是一种结构型模式它使接口不兼容的对象能够相互合作
(一) 解决问题
主要解决接口不兼容问题
(二) 使用场景
当系统需要使用现有的类但类的接口不符合需求时当需要一个统一的输出接口但输入类型不可预知时当需要创建一个可以复用的类使得该类可以与其他不相关的类或不可预见的类协同工作时
二、结构 客户端Client是包含当前程序业务逻辑的类。客户端接口Client Interface描述了其他类与客户端代码合作时必须遵循的协议。服务Service中有一些功能类通常来自第三方或遗留系统。客户端与其接口不兼容因此无法直接调用其功能。适配器Adapter是一个可以同时与客户端和服务交互的类它在实现客户端接口的同时封装了服务对象。适配器接受客户端通过适配器接口发起的调用并将其转换为适用于被封装服务对象的调用。客户端代码只需通过接口与适配器交互即可无需与具体的适配器类耦合。因此你可以向程序中添加新类型的适配器而无需修改已有代码。这在服务类的接口被更改或替换时很有用你无需修改客户端代码就可以创建新的适配器类。
三、伪代码
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__doc__
适配器模式例不同国家的电源插头不同可通过适配器使用不同国家的插头进行供电
class ChinaPlug:定义中国的插头staticmethoddef power_supply():return 中国的两脚插头供电中...class USPlug:定义美国的插头staticmethoddef power_supply():return 美国的两脚插头供电中...class Adapter:定义适配器支持使用多类插头def __init__(self, plug):self.plug plugdef power_supply(self):return f适配器使用{self.plug.__class__.__name__}供电中...# 客户端代码
if __name__ __main__:美国的两脚插头供电中...中国的两脚插头供电中...------------------------------适配器使用ChinaPlug供电中...适配器使用USPlug供电中...us_plug USPlug()china_plug ChinaPlug()print(us_plug.power_supply())print(china_plug.power_supply())print(- * 30)adapters [Adapter(china_plug), Adapter(us_plug)]for adapter in adapters:print(adapter.power_supply())四、优缺点
优点
兼容性可以让原本不兼容的接口协同工作提高系统的兼容性复用性可以复用现有的类无需修改原有代码符合开闭原则
缺点
增加了系统的复杂性需要新增一系列接口和类。 有时直接更改服务类使其与其他代码兼容会更简单。 跳转主页【Python笔记】设计模式-CSDN博客