c语言非标准输出电源适配器厂家,用C++跟你聊聊“适配器模式”

5be644743773311d99a745a08479ad6d.png

文章目录

电源适配器

适配器模式类图

适配器模式实现

适用场景

扁鹊治病的小故事

电源适配器

何为适配器?大家都知道,我国的标准电压是220V,但是我们平时使用的电器可接受不了这个电压,比方说电脑、手机,认真去看他们的充电器,还有一个名字,叫电源适配器适配器是干嘛用的?就是将功能相似或相同、但是接口不同的东西,使得他们可以对接。就像电插座和电器插口,功能都是通电,但是电压不同,适配器就起这么一个中间人的作用。又比如翻译,两个不同语言的人进行通话,相同点都是在讲话和听话,但是不同的是语言,翻译就起到中间转换的作用。

适配器并不能改变事物原有的功能,它只是把输入的功能以它该输出的方式进行输出。

适配器模式类图

类模式适配器

349d7f9be57a49d594db43d8605ea1a7.png

对象模式适配器

105ebfa0c283290cde6cb350f7ff1b71.png

适配器模式实现

#include

using namespace std;

//目标接口类,客户需要的接口

class Target

{

public:

Target(){};

virtual ~Target(){};

virtual void Request();//定义标准接口

{

cout << "Target::Request()" << endl;

}

};

//需要适配的类

class Adaptee

{

public:

Adaptee(){};

~Adaptee(){};

void Adaptee::SpecificRequest()

{

cout << "Adaptee::SpecificRequest()" << endl;

}

};

//类模式,适配器类,通过public继承获得接口继承的效果,通过private继承获得实现继承的效果

class Adapter:public Target,private Adaptee

{

public:

Adapter(){};

~Adapter(){};

virtual void Request();//实现Target定义的Request接口

{

cout << "Adapter::Request()" << endl;

this->SpecificRequest();

cout << "----------------------------" <

}

};

//对象模式,适配器类,继承Target类,采用组合的方式实现Adaptee的复用

class Adapter1:public Target

{

public:

Adapter1::Adapter1(Adaptee* _adaptee)

{

this->_adaptee = _adaptee;

}

Adapter1();

~Adapter1();

virtual void Request();//实现Target定义的Request接口

{

cout << "Adapter1::Request()" << endl;

this->_adaptee->SpecificRequest();

cout << "----------------------------" <

}

private:

Adaptee* _adaptee;

};

int main()

{

//类模式Adapter

Target* pTarget = new Adapter();

pTarget->Request();

//对象模式Adapter1

Adaptee* ade = new Adaptee();

Target* pTarget1= new Adapter1(ade);

pTarget1->Request();

//对象模式Adapter2

Target* pTarget2 = new Adapter1();

pTarget2->Request();

return 0;

}

适用场景

学习了这么些设计模式,还没遇到这么简单却实用的模式。但是,“适配器模式”好归好,可不要本末倒置。

如果在开发期间出现不适配,最好直接重构。

适配器一般是用于双方代码都不太容易修改的时候,比方说使用第三方库,发现和自己的项目不适配、比方说要复用过去的功能块,但是规格已经变过了等等。

扁鹊治病的小故事

如有雷同,那就是我借鉴了人家的故事。主要就是为了告诉大家,这个模式,就像“亡羊补牢”般。

传说有个国王问扁鹊,你们家兄弟三人,都·精通医术,那么谁的医术更加高明?

扁鹊回答说:我大哥最强,然后是我二哥,我是真的菜。

国王又问:那为什么你的名声最大?

扁鹊说:我大哥治病,都是打疫苗,所以人家不觉得他会治病;我二哥治病,都是在病情刚刚露头的时候就掐灭,所以人家都觉得他只会治疗一些小毛病;而我都是在人家病重的时候才发现,所以动作都是大手笔,人家才把我的名声传出去。所以说,我大哥是最强的,其次是我二哥,我是最菜的那个。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值