美文网首页设计模式C++实现笔记
ADAPTER-适配器(结构型模式)

ADAPTER-适配器(结构型模式)

作者: lixin_karl | 来源:发表于2019-01-20 15:27 被阅读0次

  将一个类的接口转换成客户希望的另外一个接口。

代码实现

一、对象适配器结构实现(基于组合)
class Target{//目标接口,client可以直接调用
public:
    virtual void printName(){
        
    };
};

class Adaptee{//已经存在的接口,此接口需要适配
public:
    std::string getName(){
        return std::string("karl");
    }
};

class Adapter : public  Target{//适配器,对Adaptee接口与Target接口进行适配
public:
    Adapter(Adaptee *adap){
        adaptee = adap;
    }
   void printName () override {
        std::cout<<adaptee->getName()<<std::endl;
    }
private:
    Adaptee *adaptee;
};

int main(){//client,用户只能调用Target相关接口
    Adaptee *a;
    Target *target =new Adapter(a);
    target->printName();
};

二、类适配器结构实现(基于继承)
class Target{//目标接口,client可以直接调用
public:
    virtual void printName(){

    };
};

class Adaptee{//已经存在的接口,此接口需要适配
public:
    std::string getName(){
        return std::string("karl");
    }
};

class Adapter : public  Target, private Adaptee{//对Adaptee接口与Target接口进行适配,私有继承了Adaptee来实现适配
public:
   void printName () override {
        std::cout<<this->getName()<<std::endl;
    }
};

int main(){//client
    Target *target = new Adapter();
    target->printName();
};

适用性

  • 使用一个已经存在的类(Adaptee),但是它的接口不符合要求。
  • 创建一个可以复用的类,该类可以与其他不相关的类或者不可预见的类协同工作。
  • 使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口,对象适配器可以适配它的父类接口。

效果

  比较多的会使用对象适配器

参考

相关文章

  • ADAPTER-适配器(结构型模式)

      将一个类的接口转换成客户希望的另外一个接口。 代码实现 一、对象适配器结构实现(基于组合) 二、类适配器结构实...

  • Adapter-适配器模式

    解决问题 所谓适配器模式,类似于电脑的各种端口,例如USB,只要实现了USB协议的终端都可以在电脑上使用,只需要提...

  • 23种设计模式

    创建型 工厂模式 ( 工厂方法模式, 抽象工厂模式, 建造者模式 ) 单例模式 原型模式 结构型 适配器模式 装饰...

  • 设计模式分类汇总

    结构型 适配器模式 组合模式 桥接模式 代理模式 装饰者模式 门面模式 享元模式 行为型 责任链模式 命令模式 解...

  • [Python-设计模式] 结构型模式- 适配器模式

    适配器模式 适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。 适配器模式结构 对象适配器 实...

  • 结构型模式:适配器模式

    文章首发:结构型模式:适配器模式 七大结构型模式之一:适配器模式。 简介 姓名 :适配器模式 英文名 :Adapt...

  • 前篇

    一、常见的设计模式? 创建型:工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式 结构型:适配器模式、桥接...

  • 设计模式(6) 适配器模式

    结构型模式 适配器模式 类适配器和对象适配器 结构型模式 结构型模式的重点在于如何通过灵活的体系组织不同的对象,并...

  • 适配器模式

    目录 1、什么是适配器模式? 2、适配器模式结构? 3、如何实现适配器模式? 4、适配器模式的特点? 5、适配器模...

  • JavaScript设计模式

    设计模式分类(23种设计模式) 创建型单例模式原型模式工厂模式抽象工厂模式建造者模式 结构型适配器模式装饰器模式代...

网友评论

    本文标题:ADAPTER-适配器(结构型模式)

    本文链接:https://www.haomeiwen.com/subject/tmuxjqtx.html