Design Patterns 6: Adapter
阿新 • • 發佈:2018-12-13
提供一個介面(Adapter)將已有的類(Adaptee)的介面轉換為使用者期待的類(Target)的介面
struct Adaptee { void SpecificRequest() {} }; struct Target { virtual void Request() = 0; }; struct Adapter : Target { void Request() override { _adaptee->SpecificRequest(); } Adapter(Adaptee* adaptee) : _adaptee(adaptee) {} private: Adaptee* _adaptee; }; int main() { Target* p = new Adapter(new Adaptee); p->Request();//Adaptee::SpecificRequest() get called }
struct Target
{
virtual void Request() = 0;
};
struct Adaptee
{
void SpecificRequest() {}
};
struct Adapter : Target, Adaptee
{
void Request() override { SpecificRequest(); }
};
int main()
{
Target* p = new Adapter;
p->Request();//Adaptee::SpecificRequest() get called
}