首页 > 其他 > 详细

Charpter17 适配器模式

时间:2020-03-26 21:47:19      阅读:50      评论:0      收藏:0      [点我收藏+]

适配器模式简介

适配器模式(adapter),将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原来由于接口不兼容而不能一起工作的那些类可以一起工作。

 在软件开发过程中,系统的数据和行为都正确,但接口不符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。

适配器模式有两种,类适配器模式对象适配器模式。类适配器模式要用到多继承,对象适配器模式如下图的UML类图。

当两个类所做的事情形同或相似,但是具有不同的接口时要使用适配器模式,进行接口的适配。

在双方都不太容易修改自身代码的时候再用适配器模式。

适配器模式UML类图

技术分享图片

 

 

 

C++代码实现

//Adaptee类
#ifndef _ADAPTEE_HPP
#define _ADAPTEE_HPP

#include<string>
using namespace std;

class Adaptee{
public:
    string SpecificRequest(){
        return "One";
   } 

};

#endif
//Target类
#ifndef _TARGET_HPP
#define _TARGET_HPP
class Target{
public:
    virtual int request() = 0; 
};

#endif
//Adapter类
#ifndef _ADAPTER_HPP
#define _ADAPTER_HPP

#include"target.hpp"
#include"adaptee.hpp"

class Adapter:public Target{
public:
    Adapter(Adaptee*adaptee):adaptee(adaptee){}

    virtual int request() override {
        if(adaptee->SpecificRequest() == "One"){
            return 1;
        }

    }    
private:
    Adaptee* adaptee;
};

#endif
//客户端代码
#include<iostream>
#include"adaptee.hpp"
#include"adapter.hpp"

using namespace std;
int main(){
    Adaptee * adaptee = new Adaptee();
    Adapter* adapter = new Adapter(adaptee);
    cout << adapter->request()<<endl;

    getchar();
    return 0;
}

 

Charpter17 适配器模式

原文:https://www.cnblogs.com/yb-blogs/p/12577426.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!