下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、模式定义: 适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 适配器可以分为类适配器和对象适配器。 类适配器使用多重继承对一个接口与另一个接口进行匹配。 对象适配器依赖于对象组合。 客户使用适配器的过程:1. 客户通过目标接口调用适配器的方法对适配
2、器发出请求。2. 适配器使用被适配者接口把请求转换成被施培者的一个或多个调用接口3. 客户接收到调用的结果,但并未察觉这一切是适配器在起转换作用。模式结构: 类适配器对象适配器举例:现在假设你缺少鸭子对象(叫声为Quack,飞行输出”Im flying !”),想用一些火鸡对象(叫声为”Gobble gobble” 飞行输出”Im flying a short distance!”)来冒充。显而易见,因
3、为火鸡的接口(行为)不同,所以我们不能公然拿来使用。UML设计:编程实现及执行结果:cpp view plaincopy1. #include <iostream> 2. 3. using namespace std; 4. /定义鸭子类 5. class Duck 6. 7. public: 8. virtual vo
4、id quack(); 9. virtual void fly(); 10. ; 11. /定义绿头鸭 12. class MallardDuck : public Duck 13. 14. public: 15. void quack() 16
5、. 17. cout << "Quack" << endl; 18. 19. 20. void fly() 21.
6、; 22. cout << "I'm flying" << endl; 23. 24. ; 25. /定义火鸡 26. class Turkey 27. 28. public
7、: 29. virtual void gobble() 30. virtual void fly() 31. ; 32. /定义野火鸡 33. class WildTurkey : public Turkey 34. 35. public: 36
8、. void gobble() 37. 38. cout << "Gobble gobble" << endl; 39. 40.
9、; void fly() 41. 42. cout << "I'm flying a short distance" << endl; 43. 44. ;
10、; 45. /定义火鸡适配器 46. class TurkeyAdapter : public Duck 47. 48. public: 49. TurkeyAdapter(Turkey* tur):turkey(tur) 50. 51. void quack() 52. &
11、#160; 53. turkey->gobble(); 54. 55. void fly() 56. 57.
12、 turkey->fly(); 58. 59. private: 60. Turkey* turkey; 61. ; 62. /客户代码 63. int main() 64. 65. Duck* duck&
13、#160;= new MallardDuck(); 66. duck->quack(); 67. duck->fly(); 68. 69. Duck* turkeyAdapter = new TurkeyAdapter(new WildTurkey(); 70. turkeyAdapter->quack(); 71. turkeyAdapter->fly(); 72. return&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年广东省惠州市单招职业适应性考试题库附参考答案详解(夺分金卷)
- 2026年山西艺术职业学院单招职业适应性考试题库及答案详解(易错题)
- 2026年广东省单招职业适应性考试题库带答案详解(培优a卷)
- 2026年广州工程技术职业学院单招职业倾向性测试题库带答案详解(突破训练)
- 2026年平凉职业技术学院单招职业技能考试题库附答案详解ab卷
- 2026年广东交通职业技术学院单招职业适应性考试题库附答案详解(轻巧夺冠)
- 2026年常州工程职业技术学院单招职业技能测试题库带答案详解(夺分金卷)
- 2025浙江宁波江北区劳动和社会保障事务代理服务有限公司招聘1人笔试参考题库附带答案详解
- 2025广西梧州市城建投资发展集团有限公司招聘1人笔试参考题库附带答案详解
- 2025广西农村投资集团有限公司校园招聘140人笔试参考题库附带答案详解
- 急性上消化道出血病例讨论
- 非遗文化融入高职院校美育建设的策略与实践
- 乳牙根管治疗护理配合
- 学生春假活动方案
- 呼出气一氧化氮检测流程及临床应用的专家共识(2025版)解读
- 机械设计基础(第二版)课件全套 李春明 绪论、1.1 平面机构及自由度 - 5.1 机械系统方案设计概述
- 修脚店铺转让合同协议书
- 工程造价预算编制服务方案(技术方案)
- 调饮技术大赛考试题库400题(含答案)
- 读书的力量:因声求气以读悟读-《孙权劝学》课件
- GB/T 5453-2025纺织品织物透气性的测定
评论
0/150
提交评论