首页 > 代码库 > 适配器模式
适配器模式
---新手初学,望大神指点---
意图:将一个类的接口转换成客户希望的另一个接口。
适用性:1.你想使用一个已存在的类,而它的接口不符合你的需求。
2.你想创建一个可以复用的类,该类可以与其它不相关的类或不可预见的类协同工作。
类适配器结构:
类适配器效果:1.仅仅引入一个对象,并不需要额外的指针以间接得到adaptee。
2.当我们想要匹配一个类以及它所有的子类时,类适配器将无法完成。
3.使得Adapter可以重新定义Adaptee的部分行为。
类适配器代码:
#ifndef _ADAPTER_#define _ADAPTER_#include <iostream>using namespace std;class ChineFestival{public: ChineFestival(){} virtual void JulySeven() { cout<<"中国人过情人节\n"; }};class USAFestival{public: USAFestival(){} virtual void March4th() { cout<<"美国人过情人节\n"; }};class Festival:public ChineFestival, public USAFestival{public: virtual void JulySeven() { March4th(); }};#endif
中国在七月七日过情人节,美国在三月十四过情人节。
现在要实现七月七日美国人过情人节:
#include <iostream>#include "Adapter.h"using namespace std;int main(){ ChineFestival* pFestival = new Festival; cout<<"7月7日"; pFestival->JulySeven();//输出: 7月7日美国人过情人节 return 0;}
对象适配器结构:
对象适配器效果:
1.允许能完成与Adaptee以及它所有子类一起工作。
2.使得重新定义Adaptee的行为比较困难。
用对象适配器方法就将Festival代码改成如下:
class Festival:public ChineFestival{public: Festival(){pFestival = new USAFestival;} ~Festival(){delete pFestival;} virtual void JulySeven() { pFestival->March14th(); }private: USAFestival* pFestival;};
适配器模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。