电子商务网站的管理,成都营销网站建设团队,怎么举报平台,php购物网站开发文档一、适配器模式
1、原理 适配器模式#xff08;Adapter#xff09;#xff0c;将一个类的接口转换成客户希望的另外一个接口#xff0c;使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式主要分为三类#xff1a;类适配器模式、对象适配器模式、接口…一、适配器模式
1、原理 适配器模式Adapter将一个类的接口转换成客户希望的另外一个接口使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式主要分为三类类适配器模式、对象适配器模式、接口适配器。 2、角色 适配器模式核心的有下面三个角色 源对象需要被适配的不兼容对象目标接口适配器对象要实现的标准接口适配器对象该对象使用不兼容对象提供的能力实现标准接口
3、类适配器模式
3.1、实现原理 使用继承的方式将需要适配的类转换为目标接口的子类实现目标接口的所有方法同时继承适配类的实现用以完成一些适配逻辑即适配器类需要继承不兼容对象类同时使用不兼容对象类提供的能力实现标准接口 手机充电需要5V电压但是标准的家庭用电电压是220V下面通过案例来讲解如果通过类适配器模式把220V电压转换成手机需要的5V电压UML类图如下 代码实现 #include iostream
using namespace std;// 被适配类不兼容对象类
class Voltage220V{
public:// 输出220V电压int Output220V(){return 220;}
};// 适配接口标准接口
class IAdapter {
public:virtual int Ouput5V() 0;
};// 适配器类
class VoltageAdapter : public IAdapter, Voltage220V {
public:// 输出5V电压int Ouput5V(){int src Output220V();return src / 44;}
};// 手机类
class Phone{
public:// 充电void Charging(IAdapter *pAdapter){pAdapter-Ouput5V();}
};int main()
{Phone phone;phone.Charging(new VoltageAdapter());return 0;
}
3.2、优缺点分析 优点 安全可靠封装了旧接口对客户端透明客户端代码无需修改提高复用性可以复用不兼容的类扩展性好在应用程序开发过程中可以增加新的适配器和被适配对象 缺点 过多的适配器会导致系统结构复杂 4、对象适配器模式 对象适配器模式是适配器模式中常用的一种方法基本思路是使用关联替换继承。适配器类直接继承不兼容类导致他们之间的强耦合根据合成复用原则在系统中尽量使用关联关系来替换继承下面是修改后的UML类图如下 5、总结 适配器模式的适用场景 重用现有的代码适配器模式可以允许我们重用已有的类或接口而不需要修改其原有的代码集成老系统当现有的系统不满足用户需求时需要增加系统功能或接口。但是老系统的接口可能与现有的技术、平台不兼容此时可以采用适配器模式将现有的接口适配为新的接口从而实现新系统的集成集成第三方组件在使用第三方组件时可能由于它们实现的 API 不同而导致应用程序复杂此时可以使用适配器模式将第三方组件提供的 API 适配为自己需要的 API方便在应用程序中进行调用实现跨平台兼容在不同平台、不同技术栈之间进行开发时常常需要适配不同的接口以使得不同的平台或技术栈之间能够相互兼容此时可以使用适配器模式来处理各种不兼容问题