标签:
适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。——《HEAD FIRST 设计模式》
我的c++代码:
#ifndef DESIGN_ADAPTER_H_ #define DESIGN_ADAPTER_H_ namespace adapter{ class Duck { public: virtual void Quack() = 0; virtual void Fly() = 0; }; class Turkey { public: virtual void Gobble() = 0; virtual void Fly() = 0; }; /////////////////////////// class MallardDuck : public Duck { public: virtual void Quack(); virtual void Fly(); }; class WildTurkey : public Turkey { public: virtual void Gobble(); virtual void Fly(); }; class TurkeyAdapter : public Duck { public: TurkeyAdapter(Turkey* t); public: virtual void Quack(); virtual void Fly(); private: Turkey* m_turkey; }; } #endif // DESIGN_ADAPTER_H_
#include "adapter.h" #include <iostream> using namespace adapter; void MallardDuck::Quack() { std::cout << "Quack" << std::endl; } void MallardDuck::Fly() { std::cout << "I‘m flying" << std::endl; } void WildTurkey::Gobble() { std::cout << "Gobble gobble" << std::endl; } void WildTurkey::Fly() { std::cout << "I‘m flying a short distance" << std::endl; } TurkeyAdapter::TurkeyAdapter(Turkey* t) { this->m_turkey = t; } void TurkeyAdapter::Quack() { this->m_turkey->Gobble(); } void TurkeyAdapter::Fly() { this->m_turkey->Fly(); }
标签:
原文地址:http://www.cnblogs.com/foolbread/p/4464231.html