码迷,mamicode.com
首页 > 其他好文 > 详细

适配器模式

时间:2015-04-29 00:31:13      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:

   适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。——《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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!