适配器模式
来源:互联网 发布:ios游戏 知乎 编辑:程序博客网 时间:2024/06/07 16:17
是构造型模式之一,通过Adapter模式可以改变已有类(或外部类)的接口形式。
角色和职责
Target:
目标类,也就是客户端希望使用的类,里面有希望得到的接口–对应案例中的18V。
Adapter
适配器,将实际接口转换为希望使用的接口,适配器继承自目标类。–对应案例中的Adapter。
Adaptee
待适配的类,实际提供的类,通过适配器的功能,客户端可以使用其提供的实际类!–对应案例中的220V。
案例
#include <iostream>using namespace std;/*客户端希望使用的接口类*/class Current18V{public: virtual void useCurrent18v() = 0;//希望使用的接口};/*提供实际接口的类*/class Current220V{public: void useCurrent220v()//实际接口 { cout<<"i am 220v"<<endl; }};/*适配器--为了将实际接口转换为希望使用的接口--继承自希望使用的接口类--有一个有参构造函数--有一个实际接口类的对象或者指针作为成员变量----在希望使用的接口类的虚函数里调用实际类的接口达到转换的目的*/class Adapter : public Current18V{public: Adapter(Current220V* current)//有参构造函数--形参是关于实际接口的成员变量 { m_current = current; } //适配器的虚函数里调用实际类提供的接口--进行转换 //这就是对外提供的接口--也是客户端希望使用的接口 virtual void useCurrent18v() { cout<<"use 220v"<<endl; m_current->useCurrent220v();//调用实际提供的接口 }private: Current220V* m_current;//适配器有一个关于实际接口的成员变量};int main(){ Current220V * current220v = new Current220V;//实际接口 Adapter *adapter = new Adapter(current220v);//适配器 adapter->useCurrent18v();//适配器调用期望接口--实质在虚函数调用实际接口 /*回收内存*/ delete adapter; delete current220v; return 0;}
阅读全文
0 0
- 适配器及适配器模式
- 适配器及适配器模式
- 适配器模式(类适配器)
- 适配器模式(默认适配器)
- 适配器模式(对象适配器)
- 适配器模式-类适配器
- 适配器模式-对象适配器
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- 适配器模式
- [编程题] 调整队形
- 安装ubuntu17和win10双系统后要做的一件事
- spring事务配置
- 从《战狼2》看对赌协议是电影的救命药草or毒药?
- PAT 乙级 1013
- 适配器模式
- 暑期 tensorflow+word2vec 笔记
- 【hdu 2063】过山车(二分图)
- Axure RP8 教程 :基础元件
- 代理模式
- 最长公共子序列学习篇。动态规划
- spring mvc 内外部视图
- xxxxxxxxxx
- 【HDU1556-color the ball】(树状数组)