C++與設計模式(3)——適配器模式

適配器模式

適配器模式指通過把接口轉換成用戶需要的接口,來讓原本由於接口不兼容而不能一起工作的那些類可以一起工作。
舉個簡單的例子,在STL中實際上只提供了雙端隊列(deque)的數據結構,而棧(stack)和隊列(queue)都是通過適配器模式來轉換雙端隊列(deque)的接口來實現的。

class Deque
{
public:
    void push_back(int x){}
    void push_front(int x){}
    void pop_back(){}
    void pop_front(){}
};

class Stack
{
public:
    void push(int x){deque.push_back(x);}
    void pop(){deque.pop_back();}
private:
    Deque deque;
};

class Queue
{
public:
    void push(int x){deque.push_back(x);}
    void pop(){deque.pop_front();}
private:
    Deque deque;
};

如果繼承Deque那麼在子類中會暴露過多信息,所以通過添加爲成員的方式來使用Deque的接口。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章