适配器 Adapter

适配器: 将一个类的接口转化为客户希望的另外一个接口。使得原本由于接口不兼容而不能组合在一起工作的那些类可以一起工作。

使用适配器的原因: 有的情况下,有些类不能复用的原因仅仅是接口不兼容。

比如:我们有一个继承体系,父类F拥有抽象方法GetCount,返回成员个数。用户希望使用F类的GetCount接口,而又有一个类T只有方法ListMem返回所有的成员。如何才能复用类T呢? 给出一个中间类,继承F的方法,而通过类T实现GetCount就是一种解决方法。

适配器从实现上划分,可以分为:类适配器和对象适配器。

类适配器即:通过类的继承来实现适配。一般是通过public继承要实现的方法,private继承要适配的对象。这样public继承会使得用户依旧可以访问适配出来的方法,private继承保证了要适配对象的透明,用户不可见。
对象适配器:还是通过public继承要实现的抽象方法,但是通过适配器中包含要适配的类的对象来实现该方法,达到适配的效果。

上述的例子代码如下:
class F {
public:
     vitual GetCount(void);
};
class T {
public:
     virtual ListMem(vector<int> vec);
};
class AdapterClass : public F, private T {
public:
     virtual GetCount(void) {
          ListMem(vec);
          ....
     }
};
class Adapter : public F {
public:
     virutal GetCount(void) {
          _t->ListMem(vec);
          ...
     }
private:
     T *_t;
};





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值