适配器模式(C++)
来源:互联网 发布:dnf优化后盒子无法换装 编辑:程序博客网 时间:2024/05/18 03:06
简述
适配器模式可以将一个类的接口转化为客户希望的接口,使原本不兼容不能一起工作的类可以一起工作它可以分为类适配器模式和对象适配器模式。想使用一个已经存在的类,但如果它的接口实现的功能正是我们想要的但是调用方式不同,也就是使用它的方法和你的要求不相同时,就应该考虑用适配器模式,在适配器内部进行处理。
场景说明
出国旅游时,国外的景点简介都是英文的,如果不会英文就看不懂,这时候就需要一个翻译,通常是导游将英文翻译成中文解释给我们听,我们才能使用这个信息。
UML类图
类适配器
对象适配器
对象职责
tourist:游客,也就是目标接口类,需要使用ScenicSpot类的接口获取信息ScenicSpot:景点信息,需要适配的类,
Translate:翻译者也是适配器类,负责把ScenicSpot类经过处理后,供tourist调用
代码实现
//目标class tourist{public:std::string KnowScenicSpotChain(){}std::string mDataChain;};//适配class ScenicSpot{public:std::string KnowScenicSpotEnglish(){std::string dataEnglish("this is Eiffel Tower");return dataEnglish;}};//类适配器class Translate : public tourist, public ScenicSpot{public:std::string KnowScenicSpotChain(){std::string dataEnglish = KnowScenicSpotEnglish();//把英文翻译成中文std::string dataChain("这是埃菲尔铁塔");mDataChain = dataChain;}};//对象适配器class Translate : public tourist{public:std::string KnowScenicSpotChain(){std::string dataEnglish = mScenicSpot->KnowScenicSpotEnglish();//把英文翻译成中文std::string dataChain("这是埃菲尔铁塔");mDataChain = dataChain;}public: ScenicSpot* mScenicSpot;};
阅读全文
0 0
- 适配器模式(C++)
- 适配器模式实例(C#)
- 适配器模式(Adapter)(C#)
- 【C++】Chapter13:适配器模式
- Objective C--适配器模式
- Objective C 适配器模式
- 适配器模式(C++)
- C语言和设计模式(适配器模式)
- C语言和设计模式(适配器模式)
- C语言和设计模式(适配器模式)
- 12.C语言和设计模式(适配器模式)
- 15、C语言和设计模式(适配器模式)
- 设计模式——适配器模式(C++)
- 适配器模式C语言实现
- C#--设计模式之适配器模式
- 适配器模式(Adapter)
- 适配器模式(Adapter)
- 适配器(Adapter)模式
- 根据API获取天气情况进行解析
- C++构造函数
- Tarjan缩点
- Vijos 1048 送给圣诞夜的贺卡(dfs)
- Android科大讯飞语音集成,非常详细的使用讲解
- 适配器模式(C++)
- 完数
- 这几天的socket编程
- iOS程序执行顺序和UIViewController 的生命周期(整理)
- JS—我的第六个AJAX程序(前端从数据库中获取数据库中数据,JSON传输)
- windows下安装scrapy问题解决办法
- Java类和对象 详解
- 网上购物车程序
- How do CUDA blocks/warps/threads map onto CUDA cores?