




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江西南昌经济技术开发区社医服务工作人员招聘9人考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025湖南衡阳市水务投资集团有限公司招聘30人考前自测高频考点模拟试题及一套参考答案详解
- 2025安徽蚌埠市怀远县教育局所属事业单位紧缺专业人才引进(校园招聘)15人模拟试卷有答案详解
- 2025河南省机场集团有限公司招聘毕业生模拟试卷及答案详解(夺冠)
- 2025安徽六安市“政录企用”人才引进50人模拟试卷完整参考答案详解
- 2025年公开选聘珙县县属国有企业领导人员拟聘用人员的考前自测高频考点模拟试题附答案详解(模拟题)
- 2025年山西云时代技术有限公司校园招聘模拟试卷及完整答案详解一套
- 2025昆明市五华区人力资源和社会保障局服务中心见习大学生招聘(5人)模拟试卷及答案详解(名师系列)
- 2025广东能源集团科学技术研究院有限公司招聘10人备考考试题库附答案解析
- 2025北京市海淀区上地社区卫生服务中心招聘考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025年全国电力安全生产网络知识竞赛题库及答案
- 2025年通榆县事业单位面向社会公开招聘工作人员及公开招聘基层治理专干(19人)考试参考试题及答案解析
- 《军品价格管理办法》
- 2025年会计师事务所招聘面试模拟题及解析
- 餐饮门迎培训课件
- 医院培训鼠疫课件模板
- 基孔肯雅热主题班会课件
- 2025年部编版三年级语文上册全册教案
- 心力衰竭的全程管理
- DB4201∕T 630.1-2020 中小学生研学旅行 第1部分:服务机构评定与服务规范
- 学生文明上网班会课件
评论
0/150
提交评论