C++适配器模式

适配器模式允许不同接口的类协同工作,通过改变类的接口来适应客户期望。在C++中,适配器可以通过多继承实现,尽管这可能导致菱形继承问题。另一种解决方案是使用组合方式来避免多继承,从而实现接口的灵活转换和代码重用。
摘要由CSDN通过智能技术生成

·适配器将一个类接口转换为客户端期望的另一个接口
·使用适配器可以防止类由于接口不兼容而一起工作
·适配器模式的动机是,如果更改接口,可以实现软件的重用

如下例子:我们为了实现某个类接口的重复使用,我们仅仅是更改了接口的名称。但是希望原来的接口以及实现不进行更改直接拿来用。
看如下例子;

#include <iostream>

using namespace std;

class rectangle
{
public:
	rectangle(double x1, double y1, double x2, double y2)
	{
		_x1 = x1;
		_y1 = y1;
		_x2 = x2;
		_y2 = y2;
	}

	void recDraw()
	{
		cout << "recDraw()" << _x1<<" "<<_ y1<<" "<<_x2<<" "<<_y2<<endl;
	}
private:
	double _x1;
	double _x2;
	double _y1;
	double _y2;
};

class rec
{
public:
	virtual void Draw(string str) = 0;
};

//第一种适配方式:多继承
class adpaterrec :public rec, public rectangle
{
public:
	adpaterrec(double x, double y, double w, double h):rectangle(x,y,x+w,y+h)
	{
		cout << "rectangle(x,y,x+w,y+h)" << endl;
	}
	virtual void Draw(string str)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值