设计模式-适配器模式

来源:互联网 发布:剑网三妖成男捏脸数据 编辑:程序博客网 时间:2024/05/22 04:52

适配器模式:将一个类的接口转换成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间。
这里写图片描述
模式比较简单,直接贴代码:

#ifndef Duck_h#define Duck_h#include <iostream>class Duck {public:    virtual void quack()=0;};class MallardDuck:public Duck{public:    void quack(){        printf("MallardDuck Quack\n");    }};#endif /* Duck_h */
#ifndef Turkey_h#define Turkey_h#include <iostream>class Turkey{public:    //火鸡不能呱呱叫,只能咯咯叫    void gobble(){        printf("Turkey Gobble\n");    }};#endif /* Turkey_h */
#ifndef TurkeyAdapter_h#define TurkeyAdapter_h#include "Duck.h"#include "Turkey.h"class TurkeyAdapter:public Duck{private:    Turkey* turkey;public:    TurkeyAdapter(Turkey* turkey){        this->turkey = turkey;    }    void quack(){        turkey->gobble();    }};#endif /* TurkeyAdapter_h */
#include <iostream>#include "Duck.h"#include "Turkey.h"#include "TurkeyAdapter.h"void testQuack(Duck* duck);int main(int argc, const char * argv[]) {    auto duck = new MallardDuck();    auto turkey = new Turkey();    auto turkeyAdapter = new TurkeyAdapter(turkey);    testQuack(duck);    testQuack(turkeyAdapter);//使用适配器使火鸡兼容Duck*参数    return 0;}void testQuack(Duck* duck){//客户只接受Duck*类型    duck->quack();}
0 0