适配器模式
*代码图片 from:bkeey
#include <iostream>
using namespace std;
class deque
{
public:
void push_back(int x){
cout<<"deque push_back"<<endl;
}
void push_front(int x){
cout<<"deque push_front"<<endl;
}
void pop_back(){
cout<<"deque pop_back"<<endl;
}
void pop_front(){
cout<<"deque pop_front"<<endl;
}
};
class sequeue
{
public:
virtual void push(int x)=0;
virtual void pop()=0;
};
class stack:public sequeue
{
public:
void push(int x){
pdeque.push_front(x);
}
void pop(){
pdeque.pop_front();
}
private:
deque pdeque;
};
class queue:public sequeue
{
public:
void push(int x){
pdeque.push_back(x);
}
void pop(){
pdeque.pop_front();
}
private:
deque pdeque;
};
int main(int argc, char *argv[])
{
sequeue *pseq_one = new stack();
sequeue *pseq_two = new queue();
pseq_one->push(1);
pseq_one->pop();
pseq_two->push(1);
pseq_two->pop();
return 0;
}
[root@localhost C++]# ./a.out
deque push_front
deque pop_front
deque push_back
deque pop_front