首页 > 代码库 > Adapter 适配器模式
Adapter 适配器模式
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。
- 目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。
- 需要适配的类(Adaptee):需要适配的类或适配者类。
- 适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。
有类适配器与对象适配器两种类型。
下列情况使用适配器模式:
- 要使用的类的接口不符合需求。
- 建立一个可复用的类,可以与不相关的类或不可预见的类协同工作。
- 要使用一些已存在的子类,直接适配它的父类接口。
1 #include <cstdio> 2 3 class Adaptee { 4 public: 5 void SpecificRequest(int cost) { 6 printf("such adaptee so %d\n", cost); 7 } 8 9 };10 11 class Target {12 public:13 virtual void Request() = 0;14 };15 16 class AdapterCls : public Target, private Adaptee {17 public:18 void Request() {19 SpecificRequest(100);20 }21 };22 23 class AdapterImp : public Target {24 private:25 Adaptee adaptee;26 public:27 void Request() {28 adaptee.SpecificRequest(100);29 }30 };31 32 class Client33 {34 public:35 Client();36 ~Client();37 void gaoCls() {38 Target *p = new AdapterCls();39 p->Request();40 delete p;41 }42 void gaoImp() {43 Target *p = new AdapterImp();44 p->Request();45 delete p;46 }47 private:48 };49 50 Client::Client()51 {52 }53 54 Client::~Client()55 {56 }
Adapter 适配器模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。