设计模式:适配器模式(7.1.2)C++版
来源:互联网 发布:c4d r18 for mac迅雷 编辑:程序博客网 时间:2024/06/05 15:09
适配器模式:将一个类的接口,转换成用户期望的接口
类适配器模式
C++示例代码如下:
#include "stdafx.h"#include <string>#include <iostream>using namespace std;/** CONTENTS: DESIGN PATTERN, CLASS ADAPTER PATTERN* AUTHOR: YAO H. WANG* TIME: 2013-11-3 16:35:17* EDITION: 1* LINK: http://blog.csdn.net/yaohwang ** ALL RIGHTS RESERVED!*///鸭子class Duck{public:virtual void quack() = 0;virtual void fly() = 0;};class MallardDuck: public Duck{public:void quack(){cout << "Quack" << endl;}void fly(){cout << "I'm flying" << endl;}};//火鸡class Turkey{public:virtual void gobble() = 0;virtual void fly() = 0;};class WildTurkey: public Turkey{public:void gobble(){cout << "Gobble gobble" << endl;}void fly(){cout << "I'm flying a short distance" << endl;}};//适配器class TurkeyAdapter: public MallardDuck, public WildTurkey{public:void quack(){gobble();}//void MallardDuck::fly()void Duck::fly(){for(int i = 0; i < 5; ++i)WildTurkey::fly();}};//测试void testDuck(Duck *duck){duck->quack();duck->fly();}void main(){MallardDuck *duck = new MallardDuck();WildTurkey *turkey = new WildTurkey();Duck *turkeyAdapter = new TurkeyAdapter(); cout << "The Turkey says..." << endl;turkey->gobble();turkey->fly();cout << "\nThe Duck says..." << endl;testDuck(duck);cout << "\nThe TurkeyAdapter says..." << endl;testDuck(turkeyAdapter);delete duck;delete turkey;delete turkeyAdapter;}
- 设计模式:适配器模式(7.1.2)C++版
- 设计模式:适配器模式(7.1.1)C++版
- C语言和设计模式(适配器模式)
- C语言和设计模式(适配器模式)
- C语言和设计模式(适配器模式)
- 12.C语言和设计模式(适配器模式)
- 15、C语言和设计模式(适配器模式)
- 设计模式——适配器模式(C++)
- C#--设计模式之适配器模式
- 适配器模式(C++)
- 设计模式(适配器模式,外观模式)
- 设计模式(四)适配器设计模式
- 设计模式:适配器模式
- 设计模式------适配器模式
- 设计模式:适配器模式
- 设计模式---适配器模式
- 设计模式 适配器模式
- 设计模式 - 适配器模式
- PCB设计的一般原则
- OCP-1Z0-053-V12.02-56题
- Android Fragment使用和学习
- 我理解的三路握手
- C++中OOP个性的地方之一
- 设计模式:适配器模式(7.1.2)C++版
- CODE 104: Divide Two Integers
- android手机的刷机
- 网页编码就是那点事
- C++/C const问题
- Java学习第六课 JAVA 文件操作
- cannot call methods on button prior to initialization; attempted to call method 'toggle' 解决
- CG学习prepare
- 数据库学习第四篇(对基本表数据的查询2)