设计模式(十二)adapter

来源:互联网 发布:海淘宝宝衣服 编辑:程序博客网 时间:2024/05/29 05:03

1.使用场景:将一些现存的对象放到新的环境中应用,但是新环境要求的接口是这些现存对象不满足的
2.定义:将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那类可以一起工作
3.应用:遗留代码复用、类库迁移

使用adapter模式的代码:

//目标接口(新接口)class ITarget{public:    virtual void process()=0;};//遗留接口(老接口)class IAdaptee{public:    virtual void foo(int data)=0;    virtual int bar()=0;};//遗留类型class OldClass: public IAdaptee{    //....};//对象适配器class Adapter: public ITarget{ //继承protected:    IAdaptee* pAdaptee;//组合    public:        Adapter(IAdaptee* pAdaptee){        this->pAdaptee=pAdaptee;    }        virtual void process(){        int data=pAdaptee->bar();        pAdaptee->foo(data);            }        };//类适配器class Adapter: public ITarget,               protected OldClass{ //多继承                              }int main(){    IAdaptee* pAdaptee=new OldClass();            ITarget* pTarget=new Adapter(pAdaptee);    pTarget->process();        }class stack{    deqeue container;    };class queue{    deqeue container;    };



原创粉丝点击