设计模式-适配器-C++实现

适配器模式:将一个类的接口转换成客户需要的另外一个接口,是的原本由于接口不兼容而不能一起工作的那些类可以一起工作。

场景:想使用一个类但是它的接口不符合要求。

编写一个计算器的程序,接口已经定义好了,有加法和乘法。在这之前已经写好了一个关于计算加法的类,你想复用这个加法类。但是规定的接口有两个除了加法之外还有乘法,这时适配器就上场了。

#include <stdio.h>

//计算接口
class Calculate{
	virtual void add(int a, int b) = 0;
	virtual void multiply(int a, int b) = 0;
};

//计算器A
class CalculatorA {
public:
	void add(int a, int b) {
		printf("计算器A计算两数相加结果为:%d\n", a + b);
	}
};

//计算的适配器
class CalculatorAdapter :public Calculate {
public:
	CalculatorAdapter(CalculatorA* calculatorA) {
		_calculatorA = calculatorA;
	}
public:
	virtual void add(int a, int b) {
		_calculatorA->add(a, b);
	}
	virtual void multiply(int a, int b) {
		printf("装换器计算乘法:%d", a*b);
	}
private:
	CalculatorA* _calculatorA;
};

int main() {

	CalculatorA* calculatorA = new CalculatorA;
	CalculatorAdapter* calculatorAdapter = new CalculatorAdapter(calculatorA);

	calculatorAdapter->add(4, 5);
	calculatorAdapter->multiply(4, 5);

	return 0;
}

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wb175208

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值