《设计模式10》-适配器模式

上传人:公**** 文档编号:569727733 上传时间:2024-07-30 格式:PPT 页数:11 大小:205.50KB
返回 下载 相关 举报
《设计模式10》-适配器模式_第1页
第1页 / 共11页
《设计模式10》-适配器模式_第2页
第2页 / 共11页
《设计模式10》-适配器模式_第3页
第3页 / 共11页
《设计模式10》-适配器模式_第4页
第4页 / 共11页
《设计模式10》-适配器模式_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《《设计模式10》-适配器模式》由会员分享,可在线阅读,更多相关《《设计模式10》-适配器模式(11页珍藏版)》请在金锄头文库上搜索。

1、2.适配器模式(AdapterPattern)v两个不同的类A和B,接口不同,但又希望将A和B统一起来(将A当作B类使用,或将B当作A类使用)class Client public: void Use(A& aA);AA1A2A3B学生、教师例例v已有现成的两个类簇-Student和Teacher类簇;v希望创建一些新的实例-具有学生的功能,但这些功能又用到教师的功能;学生、教师classStudentpublic:virtualStudent();virtualvoid上课();virtualvoid休息();;classTeacherpublic:virtualTeacher();virt

2、ualvoid授课();virtualvoid玩();;1.学生可有本科生、硕士研究生、博士研究生等;2.现增加一类在职学生-本身也是教师。3.这时,在职学生的上课就是教师的授课;4.怎么才能将教师,当做学生来使用呢?问题v接口的不一致性v原接口的不可更改性v解决方式:类的适配器方式对象适配器方式类的适配器模式classStudentpublic:virtualStudent();virtualvoid上课()=0;virtualvoid休息()=0;;classTeacherpublic:virtualTeacher();virtualvoid授课();virtualvoid玩();;cla

3、ss在职学生:publicStudent,privateTeacherpublic:virtual在职学生();virtualvoid上课()授课();virtualvoid休息()玩();类适配器结构对象适配器方式classStudentpublic:virtualStudent();virtualvoid上课()=0;virtualvoid休息()=0;;classTeacherpublic:virtualTeacher();virtualvoid授课();virtualvoid玩();;class在职学生:publicStudentpublic:在职学生(Teacher*t):tc(t)

4、virtual在职学生();virtualvoid上课()tc.授课();virtualvoid休息()tc.玩();private:Teacher*tc;对象适配器结构适配器模式效果v在不改变原有类的前提下,调整原有类的接口v适用性:使用已有的类,但类的接口不符合需要;对象适配器,通常比类适配器更灵活;例某绘图程序已存在矩形(Rect)、椭圆(Ellipse)两种图形元素。现要将三角形(Triangle)图形元素加入该程序以实现功能扩充。已知某第三方类库中提供了XTriangle类,且完全满足程序新增的Triangle图形元素所需的功能,但XTriangle不是由Shape派生而来,而且由于缺少XTriangle类的源代码,不能从XTriangle类直接派生子类。classTriangle:publicShapepublic:Triangle():pXtriangle(newXTriangle)virtualTriangle()deletepXtriangle;virtualvoidDraw()pXTriangle-DrawIt();private:XTriangle*pXtriangle;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号