文章目录
前言
今天复习了适配器模式,主要是有人问我这个设计模式,突然不知道该怎么说了,尴尬!!!
一、适配器模式的理解
适配器模式,说白了就是由于目标接口与已有接口不一致,但是功能相似,只要对目标接口稍作处理(这里的处理就是适配器工作方式)就可以实现目标功能。
我们知道不同国家的电压可能不同,而生产的电器也不是所有电压都能正常工作,总不能针对不同国家的电压生产专门的电器吧,于是电源适配器就产生了,它的作用就是把不同电压变成电器需要的电压,这就是适配器模式的一种应用。
适配器模式一般用于软件开发后期,旧的软件接口已被大量使用,但是新的软件接口功能相同但是接口有差异,无法直接使用,这时如果重新统一接口设计,需要消耗大量的资源(时间、人力、物力),简单的使用一个适配器作为连接新旧接口的中转站就成为首选。
《大话设计模式》中对适配器模式的定义与结构图如下所示:
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、c++实现适配器模式
这里举了个不太合适的例子来实现适配器模式:旧的接口,即Adaptee类的一个方法OldRequest(const int value), 只支持int类型参数,现在要定义一个新的接口,实现功能和上述接口相同,只是需要string类型的参数,因此在适配器类Adaptor继承Target类并覆写了Target类中NewRequest(const std::string&)方法,对字符串参数做简单的处理后调用Adaptee类中接口实现目标功能。
这里说的不太合适主要是这个例子没有什么实际意义,纯粹是为了介绍适配器模式而编造的。
#include <iostream>
#include